2017-08-29 125 views
0

這裏是addiu指令操作碼(16位指令,GCC選項-mmicromips):addiu指令編碼(MIPS,GCC)

full instruction: addiu sp,sp,-280 
opcode, hexa:  4F75   
opcode, binary: 1001(instruction) 11101(sp is $29) 110101 

我的目的是爲了檢測這種類型的所有指令(addiu sp,sp,) 和然後在上面的情況下(-280)(跟隨sp)解碼即時。 我不明白的是(-280)的編碼。 鏈接到:How to get a call stack backtrace?(GCC,MIPS,no frame pointer)

+0

不知道是什麼樣的mips? 16位? – Jester

+0

我正在使用mips 32bit – David

+0

這當然不是32位......該指令的mips32機器碼是'27 BD FE E8','FE E8'是'-280'。 – Jester

回答

1

microMips有一個專門的ADDIUSP指令,彙編器選擇使用。前6位是操作碼010011,接下來的9位是編碼的立即數110111010 = 0x1BA,LSB保留在1

立即的編碼使用縮放4和符號擴展。鑑於0x1BA = -70(使用9位),值爲-70 * 4 = -280