在 macOS 上运行汇编代码
本文介绍了如何将 1+1
这个表达式转成在 macOS 上可运行的二进制程序。
- 转汇编文件
c.s
# 使 ld 可以找到入口点
global start
start:
# 1 + 1 在寄存器模型上说白了就是 栈和两个寄存器 移来移去的操作
push 1
push 1
pop ebx
pop eax
add eax, ebx
push eax
# 程序结束时放上中断
mov eax, 0x1
int 0x80
- 编译成二进制文件
$ nasm -f macho c.s
- 链接
$ ld c.o
- 运行
$ ./a.out
$ echo $?
2