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