第9部分-Linux x86 64位汇编 AT&T汇编示例四

第9部分-Linux x86 64位汇编 AT&T汇编示例四

 

示例——输出字符串

如下代码示例:

.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       # 调用内核功能

通过as汇编器进行编译。

# as -o hello.o hello.s

#ld -s -o hello hello.o

其中-s参数表示在链接时候去掉函数符号。

你可能感兴趣的:(X86处理器汇编技术系列)