AT&T汇编helloworld

摘自: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 $1, %ebx                    # 参数一:文件描述符(stdout)
    movl $4, %eax                    # 系统调用号(sys_write)
    int $0x80                        # 调用内核功能    
                                    # 退出程序
    movl $0, %ebx                    # 参数一:退出代码
    movl $1, %eax                    # 系统调用号(sys_exit)
    int $0x80                        # 调用内核功能
#end

 

编译和连接:

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

 

调用:

./hello
posted @ 2014-08-14 15:29  lichmama  阅读(489)  评论(0编辑  收藏  举报