摘自:http://blog.163.com/guixl_001/blog/static/417641042012112102642703/

代码:

#hello.s
.data # 数据段声明
msg : .string "hello,world!\n" # 要输出的字符串
len = . - msg # 字串长度
.text # 代码段声明
.global _start # 指定入口函数 _start: # 在屏幕上显示一个字符串
movl $len, %edx # 参数三:字符串长度
movl $msg, %ecx # 参数二:要显示的字符串
movl $, %ebx # 参数一:文件描述符(stdout)
movl $, %eax # 系统调用号(sys_write)
int $0x80 # 调用内核功能
# 退出程序
movl $, %ebx # 参数一:退出代码
movl $, %eax # 系统调用号(sys_exit)
int $0x80 # 调用内核功能
#end

编译和连接:

as -o hello.o hello.s
ld -s -o hello hello.o

调用:

./hello
05-11 14:02