在Mac OS X中出现NASM错误

3

我开始阅读关于操作系统的这本书,但在按照作者给出的指示(第12-13页)构建第一个汇编程序示例时遇到了一些问题:

loop:
   jmp loop

times 510-($-$$) db 0

dw 0xaa55

在使用书中提供的nasm命令时,我遇到了以下错误:

$ nasm boot_sector.asm -f bin -o boot_sector.bin
boot_sector.asm:1: error: expression syntax error
boot_sector.asm:2: error: expression syntax error

错误似乎与loop标签及其后面的跳转有关,但是我对出现了什么问题或缺少了什么一无所知(我刚开始学汇编语言)。我正在MacBook Pro上使用Mavericks构建该程序。
更新:使用jmp $代替。
loop:
  jmp loop

能正常工作,虽然不知道原因。


x86指令集包括一个名为“loop”的函数。这可能会使汇编程序出现混淆。请使用其他标签名称。 - Gene
@Gene 非常感谢!ID确实让汇编器感到困惑。您能将此设置为答案,以便我可以接受吗? - jviotti
谢谢。完成了!很高兴它起作用了。 - Gene
1个回答

3

x86指令集包含一个名为“loop”的命令。因此,具有相同名称的标签可能会使汇编程序产生困惑。请尝试为标签选择不同的ID。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接