код сборки
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 вызывает сбой, указывающий на то, что эти два кода операции не равны. Почему NASM добавляет 0x66 вперед и как от него избавиться?
обновление: директива bits 32
сработала. Спасибо за быстрый ответ, ссылки и пояснения!