寻找将ASM指令显示为二进制代码的程序

时间:2013-02-25 17:25:18

标签: assembly opcode

我正在寻找一个程序(首选Linux / FOSS)或能够快速方便地向我展示(Intel)汇编指令的十六进制等效的网站

E.g。我输入:

test al, al

并输出

84 c0

在C中编写内联汇编并检查它编译的内容 not cout是否快捷方便。

2 个答案:

答案 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