我如何 运行 mac 上的汇编程序?

How do I run an assembly program on mac?

我最近一直在自学 raspberry PI 上的 ARM 汇编,现在我正在使用 NASM 编译器在 MacOS X 上自学 x86 汇编。我写了一个文件名为'program1.s'的小程序。代码如下:

global start

section .text
start:
    mov rax, 0xA

首先,我想问一下,这是 MacOS X 上 NASM 的正确语法吗?但我的主要问题是,我使用什么 NASM 命令来 运行 这个?

如能就这些问题中的任何一个提供帮助,我们将不胜感激。

以下命令可用于assemble、link,然后运行 macOS 上的汇编代码程序。

$ nasm -fmacho64 program1.s         # assemble
$ ld -static program1.o -o program1 # link
$ ./program1                        # run

为了前面的工作,我添加了一个 exit 系统调用的指令(否则在 运行ning 时会出现分段错误,大概来自后续的数据内存被解释为要执行的指令)。

global start

section .text
start:
    mov rax, 0xA
    mov rax, 0x02000001  ; System call for exit.
    mov rdi, 0x0         ; An exit code of 0.
    syscall