一、安装nasm
nasm是mac下汇编语言编译器,可以把.s文件编译成.o文件
.s 文件:汇编语言源程序
.o 文件:编译后但未链接的文件
brew install nasm
nasm --version
官网:www.nasm.us/,可查看nasm介绍和命令
二、上代码
SECTION .data #数据区
msg: db "hello world!", 0x0a #db=>data byte, 0x0a=>换行符
len: equ $-msg
SECTION .text #代码区
global _main #定义程序入口
kernel: #kernel代码段,给main函数call调用
syscall
ret
_main: #main函数代码段
mov rax,0x2000004 #write函数地址
mov rdi,1 #write函数参数放入寄存器,64位汇编参数位置和顺序约定如下图
#write原型:size_t write(int fildes,const void *buf,size_t nbytes);
mov rsi,msg
mov rdx,len
call kernel
mov rax,0x2000001 #exit函数地址
mov rdi,0
call kernel 三、编译&&链接&&运行
nasm -f macho64 hello.s #macho64 指定为mac64位编译后 .o文件格式gcc hello.o -o hello./hello