дизассемблеры разбивают инструкции на отдельные строки - PullRequest
0 голосов
/ 14 сентября 2018

Я хотел проверить некоторые инструкции, поэтому я пишу код операции и разбираю его.Однако, когда я использую «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 отделяется от другой строки.Я не знаю, почему это так и как сделать инструкцию в одну строку.Прошу прощения, если это глупый вопрос.Большое вам спасибо.

...