我正在寻找可以快速方便地向我展示(英特尔)汇编指令的十六进制等效项的程序(首选 Linux/FOSS)或网站
例如我输入:
test al, al
它输出
84 c0
用 C 编写内联汇编并检查它编译成的内容并没有那么快速和方便。
为此,我总是使用 as from 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
您可以将 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