Mac上使用汇编打印Hello world

最近喜欢上了学习汇编,然后就在网上找资源学习如果使用mac进行汇编。下面是一个简单的hello world

将下面的代码保存为hello.s

.globl	_main 
_main:                
	pushq	%rbp
	leaq	hello.str(%rip), %rdi
	callq	_printf
	popq    %rbp
	retq
hello.str:
	.asciz "hello world\n"


https://static.ithome.io/upload/file/99493904-baf8-82d4-aa13-72ecb40fcd27/article_temp/20191015/23ace537f200a5da5261409928fcd9bf.png

使用as进行编译,这里我们直接使用xcode给我们提供的as来编译

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/as hello.s -o hello.o

然后使用ld命令连接程序

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld hello.o -e _main -lsystem -o hello

最后执行编译出来的hello 程序 

https://static.ithome.io/upload/file/99493904-baf8-82d4-aa13-72ecb40fcd27/article_temp/20191015/c60c59ebdaba86c4227dcb005286af5a.png

0条评论