NASM汇编程序 - 生成的机器代码中不需要的66

问题描述 投票:4回答:1
  • :windows 10
  • cpu:intel core i5-5300U
  • 建筑:64

我刚开始学习汇编语言。我使用在线编译器,但今天我下载了NASM。我试图组装这个简单的代码,将10乘以15:

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

尝试执行NASM生成的机器代码失败了,所以我在十六进制编辑器中打开了这个代码,并将它与online assembler生成的代码进行了比较,我可以成功执行。

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

这两个代码之间的唯一区别是NASM生成的代码中不需要的66。谁能帮我?

assembly x86 nasm
1个回答
2
投票

就像杰斯特所说的那样。我不包括BITS 64声明。现在,当我加入BITS 64时,一切正常

© www.soinside.com 2019 - 2024. All rights reserved.