我正在寻找一个程序(首选Linux / FOSS)或能够快速方便地向我展示(Intel)汇编指令的十六进制等效的网站
E.g。我输入:
test al, al
并输出
84 c0
在C中编写内联汇编并检查它编译的内容 not cout是否快捷方便。
答案 0 :(得分:3)
我总是使用来自binutils的那个。 E.g:
$ 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
答案 1 :(得分:2)
您可以将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