アセンブリコードは
mov eax, 0x3a14a5
jmp eax
GAS は次のオペコードを生成します。
0xB8, 0xA5, 0x14, 0x3A, 0x00
0xFF, 0xE0
一方、NASM は次のオペコードを生成します
0x66, 0xB8, 0xA5, 0x14, 0x3A, 0x00
0x66, 0xFF, 0xE0
したがって、NASM がコードの前に 0x66 を追加していることがわかります。私のプログラム (詳しくは説明しません) 内で、GAS オペコードは正しく機能し、NASM コードはこれら 2 つのオペコードが等しくないことを示すクラッシュを引き起こします。NASM が 0x66 をプリアペンドするのはなぜですか?どうすればそれを取り除くことができますか?
更新:bits 32
ディレクティブは機能しました。迅速な返信、リンク、説明をありがとう!