zoukankan      html  css  js  c++  java
  • 王晓博 2010.05.15-2 汇编 大小写转换

    作者:2008级嵌入式  王晓博

    #将下面汇编代码保存为 wxb2.s 文件
    #功能:将输入的字符串中的小写字母转换为大写,然后输出

    .section .bss
        .equ len,256
        .lcomm buffer,len     #.lcomm是在本地内存区域中声明固定长度的未初始化数据,
                              #这里初始化了256个字节的空间
        
    .section .text
    .globl _start

    _start:
        movl $buffer, %ecx
        movl $256, %edx
        movl $0, %ebx
        mov $3,%eax        #3号调用
        int $0x80

        movl $buffer,%ecx
        xor %eax,%eax
        jmp ts
    up:
        incl %eax
    ts:
        cmpl $len,%eax
        jge done

        cmpb $97,(%ecx,%eax,1)       #如果数小于了小写字母a的ASCII就quit
        jl   jtbup

        cmpb $122,(%ecx,%eax,1)      #如果大于w了就也同样quit
        jg jtbup

        subl $32,(%ecx,%eax,1)       #符合的进行转化

    jtbup:
         jmp up

    done:
        movl $buffer, %ecx
        mov $256,%edx
        movl $1, %ebx
        mov $4,%eax            #4号调用
        int $0x80

        movl $0, %ebx   #quit
        mov $1,%eax
        int $0x80


    [root@localhost ~]# as wxb2.s -o wxb2.o
    [root@localhost ~]# ld wxb2.o -lc -dynamic-linker /lib/ld-linux.so.2  -o wxb2
    [root@localhost ~]# ./wxb2
    asdf
    ASDF
    [root@localhost ~]# ./wxb2
    ADF     asdf  ASDdsf
    ADF     ASDF  ASDDSF
    [root@localhost ~]#



  • 相关阅读:
    Zigbee学习路线
    Zigbee简介
    验证lagrange 定理
    为什么(12)式,km不能直接相乘?而要让域k先乘一个代数A里面的单位元,再作用在群M上呢?
    strong weak distribution
    sufficient statistics
    tensorflow TypeError: Can not convert a float32 into a Tensor or Operation
    tensorflow 训练的时候loss=nan
    tensorflow run()和 eval()
    python array基本操作一
  • 原文地址:https://www.cnblogs.com/ztguang/p/12647849.html
Copyright © 2011-2022 走看看