汇编代码是相同x86汇编指令的不同
mov eax, 0x3a14a5
jmp eax
GAS产生的
0x66, 0xB8, 0xA5, 0x14, 0x3A, 0x00
0x66, 0xFF, 0xE0
所以你的
0xB8, 0xA5, 0x14, 0x3A, 0x00
0xFF, 0xE0
而NASM产生的操作码和操作码看到NASM在代码之前会出现一个0x66。在我的程序中(我不会详细讨论),GAS操作码正常工作,并且NASM代码导致崩溃,表明这两个操作码不相等。为什么NASM提前0x66,我该如何摆脱它?
更新:bits 32
指令工作。感谢您的快速回复,链接和解释!