我开始阅读有关操作系统的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
工作正常,虽然不知道为什么。
答案 0 :(得分:3)
x86指令集包含一个名为“loop”的指令集。因此,具有相同名称的标签可能会使汇编程序混乱。为标签尝试不同的ID。