我要尋找一個程序(Linux的/開放源碼軟件的首選)或一個網站,可以快速方便告訴我的(英特爾)彙編指令的hex等值尋找程序,以顯示ASM指令爲二進制ocodes
例如我進入:
test al, al
它輸出
84 c0
寫行內彙編在C和檢查它編譯成不不 COUT爲快速,便捷。
我要尋找一個程序(Linux的/開放源碼軟件的首選)或一個網站,可以快速方便告訴我的(英特爾)彙編指令的hex等值尋找程序,以顯示ASM指令爲二進制ocodes
例如我進入:
test al, al
它輸出
84 c0
寫行內彙編在C和檢查它編譯成不不 COUT爲快速,便捷。
我總是使用binutils。例如:
$ echo -e "MOV DWORD PTR [RSP+4], 0x12345678" | as -o /dev/null -64 -al -msyntax=intel -mnaked-reg
GAS LISTING page 1
1 0000 C7442404 MOV DWORD PTR [RSP+4],0x12345678
1 78563412
$ echo -e "push eax" | as -o /dev/null -32 -al -msyntax=intel -mnaked-reg
GAS LISTING page 1
1 0000 50 push eax
不錯,因爲'as'通常是可用的。命令行有點太難記,但它運行良好。你知道是否有一個靜態表binutils或API調用,我可以用它來建立一個小型網站? – nh2 2013-04-17 02:53:55
你可以結合使用NASM與NDISASM,如:
這是彙編文件(命名,比如,test.asm
)與你的指令:
bits 32
test al, al
你組裝它:
nasm -f bin test.asm -o test.bin
然後你拆開它:
ndisasm -b 32 test.bin
這是你會得到什麼:
00000000 84C0 test al,al
另一種方式是裝配時產生列表文件:
nasm -f bin test.asm -o test.bin -l test.lst
這是你在test.lst
得到:
1 bits 32
2 00000000 84C0 test al, al
Possi ble重複http://stackoverflow.com/questions/12476548/checking-up-intel-assembly-opcodes-easily-in-linux – nrz 2013-02-25 17:30:02
binutils objdump -D – 2013-02-25 18:31:23