【问题标题】:NASM errors in Mac OS XMac OS X 中的 NASM 错误
【发布时间】: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 确实让汇编程序感到困惑。您可以将此设置为答案,以便我接受吗?
  • 谢谢。完毕!很高兴它成功了。

标签: macos nasm


【解决方案1】:

x86 指令集包括一个名为“循环”的指令集。所以同名的标签可能会让汇编程序感到困惑。为标签尝试不同的 id。

【讨论】:

    猜你喜欢
    • 2012-09-21
    • 2011-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-07
    • 2015-03-16
    相关资源
    最近更新 更多