#hello.s sample program to print hello world information
.section .data #数据段声明
msg:
.ascii "hello world123456!\n" #要输出的字符串
len=.-msg #字符串长度
.section .text #代码段声明
.global main
main:
#.global _start #指定入口函数
#_start:
#函数在屏幕上输出hello world!
movl $len, %edx #第三个参数: 字符串长度
movl $msg, %ecx #第二个参数: hello world!字符串
movl $1, %ebx #第一个参数: 标准输出文件描述符
movl $4, %eax #系统调用号sys_write
int $0x80 #调用内核功能
mov $0x81, %edx
testb $0x2, %dl
jz 2f
jnz 1f
mov $1, %ebx
#mov bx, 1
mov $0x0e, %ah
mov $0x30, %al
#seg000:01A6 mov ah, 0Eh
#int $0x10
#seg000:01A8 int 10h
1:
#下面为退出程序代码
movl $0, %ebx #第一个参数: 退出返回码
movl $1, %eax #系统调用sys_exit
int $0x80 #调用内核功能
2:
movl $34, %ebx
movl $1, %eax
int $0x80
#程序退出后用echo $?取得程序返回的结果
gcc -o hello hello.S