gcc 编译x86汇编代码

#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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值