【发布时间】:2014-10-17 12:40:01
【问题描述】:
我开始阅读有关操作系统的 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
工作正常,虽然不知道为什么。
【问题讨论】:
-
x86 指令集包括一个称为“循环”的指令集。这可能会使汇编程序感到困惑。为标签使用其他 id。
-
@Gene 非常感谢! ID 确实让汇编程序感到困惑。您可以将此设置为答案,以便我接受吗?
-
谢谢。完毕!很高兴它成功了。