反汇编程序将指令分成单独的行

时间:2018-09-14 03:43:23

标签: disassembly instructions opcode

我想查看一些说明,所以我编写了操作码并将其反汇编。但是,当我使用“ objdump -d”进行检查时,我发现反汇编程序将指令拆分为单独的行,而且我不知道如何将这些单独的行收集为一行并执行应执行的功能。 代码如下:

#include<stdio.h>
int main()
{

    asm(".byte 0x0f");
    asm(".byte 0xae");
    asm(".byte 0xee");
    printf("test done \n");
    return 0;

}

反汇编结果如下:

00000000004004b2 <main>:
  4004b2:       55                      push   %rbp
  4004b3:       48 89 e5                mov    %rsp,%rbp
  4004b6:       0f ae                   (bad)
  4004b8:       ee                      out    %al,(%dx)
  4004b9:       bf 54 05 40 00          mov    $0x400554,%edi
  4004be:       e8 ed fe ff ff          callq  4003b0 <puts@plt>
  4004c3:       b8 00 00 00 00          mov    $0x0,%eax
  4004c8:       5d                      pop    %rbp
  4004c9:       c3                      retq
  4004ca:       66 0f 1f 44 00 00       nopw   0x0(%rax,%rax,1)

妓女指令为0x0faeee。但是您可以看到0x0f和0xae共享一条线,而0xee被分隔到另一行。我不知道为什么会这样,以及如何将指令写成一行。 抱歉,这是一个愚蠢的问题。 非常感谢。

0 个答案:

没有答案