我有一个名为exit.s的简单汇编代码文件,如下所示:
.text
.globl _start
_start:
xor %eax, %eax
mov %al, 1
xor %ebx, %ebx
我想得到这个的十六进制字节代码。我怎么在linux机器上这样做?我会用什么命令?
答案 0 :(得分:4)
使用gcc
将其编译为可执行文件,然后使用objdump -d
打印出代码:
gcc -c -o my_file.o my_file.s
objdump -d my_file.o
答案 1 :(得分:1)
这里最重要的是你需要一个十六进制编辑器或查看器。你可以找到很多免费的。
组装文件后,您将拥有一个输出文件,该文件通常采用ELF格式,这意味着文件开头的标题中有额外的信息。您可以使用ld
标志告诉oformat
创建一个只包含汇编指令的平面二进制文件:
$ld file.o -oformat binary
然后,如果使用十六进制编辑器打开生成的可执行文件,您将看到汇编程序生成的机器代码。