如何查看机器代码?

时间:2016-04-27 20:37:49

标签: assembly att

我已经用汇编编写了一个程序(& t语法),我想看看机器代码的外观。这就是我获取可执行代码的方式:

as -g -o p1.o p1.s --32 -gstabs
ld -o p1 p1.o -m elf_i386

1 个答案:

答案 0 :(得分:1)

假设您使用的是Linux或BSD平台(基于您使用as的事实),您可能需要尝试objdump

objdump -d <binary file>将反汇编目标文件,在左侧显示机器代码十六进制字节,在右侧显示反汇编的匹配组件助记符。这是一个例子:

$ objdump -d factorial

factorial:     file format elf64-x86-64

Disassembly of section .init:

00000000004003f0 :
  4003f0:   48 83 ec 08             sub    $0x8,%rsp
  4003f4:   e8 73 00 00 00          callq  40046c
  ..
Disassembly of section .plt:

0000000000400408 :
  400408:   ff 35 e2 0b 20 00       pushq  0x200be2(%rip)        # 600ff0
  40040e:   ff 25 e4 0b 20 00       jmpq   *0x200be4(%rip)        # 600ff8
  400414:   0f 1f 40 00             nopl   0x0(%rax)

objdump是Linux平台上binutils包的一部分。