NASM ассемблер - нежелательные 66 в сгенерированном машинном коде - PullRequest
4 голосов
/ 16 апреля 2019
  • ОС: Windows 10
  • процессор: Intel Core i5-5300U
  • Архитектура: x64

Я только начал изучать ассемблер. Я использовал онлайн-компилятор, но сегодня я скачал NASM. Я пытался собрать этот простой код, который умножает 10 на 15:

mov eax, 0xa
mov edx, 0xf
imul eax, edx
ret

Попытка выполнить машинный код, сгенерированный NASM, не удалась, поэтому я открыл этот код в hex Editor и сравнил его с кодом, сгенерированным онлайн-ассемблером , который я могу успешно выполнить.

NASM:

66 b8 0a 00 00 00 66 ba 0f 00 00 00 66 0f af c2 c3

онлайн-редактор:

b8 0a 00 00 00 ba 0f 00 00 00 0f af c2 c3

Единственными различиями между этими двумя кодами являются нежелательные 66 в коде, генерируемом NASM. Кто-нибудь может мне помочь?

1 Ответ

2 голосов
/ 16 апреля 2019

Это так, как предложил Шут. Я не включил BITS 64 декларации. Теперь, когда я включил BITS 64 все работает

...