编写汇编语言源代码hello.s
.data # 数据段声明
msg: .string "Hello,world!\n" # 要输出的字符串
len = .-msg #字符串长度
.text # 代码段声明
.global _start # 指定入口函数
_start: # 在屏幕上显示一个字符串
movl $len,%edx #参数三:字符串长度
movl $msg,%ecx #参数二:要显示的字符串
movl $1,%ebx #参数一:文件描述符
movl $4,%eax #系统调用号(sys_write)
int $0x80 #调用内核功能
# 退出程序
movl $0,%ebx #参数一:退出代码
movl $1,%eax #系统调用好(sys_exit)
int $0x80 #调用内核功能
删除除了hello.s汇编语言源代码之外的其他文件
adog@E531:linux_assembly$ rm -rf !(hello.s)
adog@E531:linux_assembly$ ls
hello.s
对汇编语言源代码进行编译,并带有调试信息
adog@E531:linux_assembly$ gcc -c -g -o hello.o hello.s
adog@E531:linux_assembly$ ls
hello.o hello.s
使用ld指令对hello.o进行链接
adog@E531:linux_assembly$ ld -o hello hello.o
adog@E531:linux_assembly$ ls
hello hello.o hello.s
使用gdb --tui进行可以查看源代码的调试
adog@E531:linux_assembly$ gdb --tui hello
adog@E531:linux_assembly$
使用as命令也可以进行编译
as -o to.o from.s
ld -o to to.o