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 ~]#



  • 相关阅读:
    创建一个Flex工程
    WebORB手动配置要点
    热血三国地图增强版
    vs2008 sp1无法加载实体模型工具的解决办法
    Berkeley DB for .NET使用
    FluorineFx使用自定义VO(实现IExternalizable接口)
    PD生成数据表时出现“未能准备语句”
    替换AsWing的JTree组件中的图标
    参数传递
    c# 32位16位MD5加密
  • 原文地址:https://www.cnblogs.com/ztguang/p/12647849.html
Copyright © 2011-2022 走看看