使用as命令对汇编文件进行汇编生成目标文件:as xxx.s -o xxx.o
使用ld命令对目标文件进行连接生成可执行文件:ld xxx.o -o xxx
注意:ld命令进行链接要求目标文件的.text段必须有一个入口点,ld默认认为_start标签对应的代码是入口点。
一:在屏幕上输出字符串The value is(调用系统号实现write函数)
data
printf_text:.string "The value is"
len = .-printf_text
.text
.global _start
_start:
movq $1,%rax
movq $1,%rdi
movq $printf_text,%rsi
movq $len,%rdx
syscall
# 调用exit退出
movq $60,%rax
xor %rdi,%rdi
syscall
二.调用printf函数打印数据
The value is 5
.extern printf
.data
printf_text:.ascii "The value is%d\n"
len = .-printf_text
.text
.global _start
_start:
movq $0,%rax
movq $printf_text,%rdi
movq $5,%rsi
call printf
# 调用exit退出
movq $60,%rax
# xor %rdi,%rdi
syscall
as printf_data.s -o print.o
ld print.o -o print -lc -I/lib64/ld-linux-x86-64.so.2