NASM 'fatal: No section for index 2 offset 0 found' Mac OS X Yosemite

NASM 'fatal: No section for index 2 offset 0 found' on Mac OS X Yosemite

这是我第一次为 Mac 编写汇编程序,并且不断收到一些奇怪的错误,我在谷歌搜索方面运气不佳。到目前为止,我只是想在终端上打印 "Hello, World!" 。这是我的代码:

global _main


section .text

_main:
    mov rax, 0x20000004
    mov rdi, 1
    mov rsi, msg
    mov rdx, msg.len
    syscall

    mov rax, 0x20000001
    mov rdi, 0
    syscall


section .data

msg:    db  "Hello, World!", 10
.len:   equ $ - msg

每当我 运行 这段代码时,我都会使用命令 nasm -f macho64 print.asm。顺便说一句,nasm -v 打印 NASM version 2.11.08 compiled on Mar 10 2015。当我使用上面的命令时,NASM 给出了这个输出:

print.asm:9: fatal: No section for index 2 offset 0 found

我很困惑,希望得到任何帮助。谢谢!

我遇到了貌似问题。来自 the:

代替:“mov rsi, msg”,使用:"lea rsi, [rel msg]"