Mac OS X中的NASM错误

时间:2014-08-24 01:05:32

标签: macos nasm

我开始阅读有关操作系统的the following book,并且我在使用作者提供的说明(第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标签及其后的跳转有关,但我对于错误/缺失(仅从装配开始)一无所知。

我正在使用Mavericks在MacBook Pro中构建程序。

更新:使用jmp $代替

loop:
  jmp loop

工作正常,虽然不知道为什么。

1 个答案:

答案 0 :(得分:3)

x86指令集包含一个名为“loop”的指令集。因此,具有相同名称的标签可能会使汇编程序混乱。为标签尝试不同的ID。