zoukankan      html  css  js  c++  java
  • 汇编 字符串字母首位转大写

    ' ;获取参数指针
    ' mov ebx, dword [ebp+08h]
    ' mov ebx, dword [ebx]

    ' ;首位标识置1,开始第一位就是首字符
    ' mov dword [ebp-04h], 00000001h

    ' ;循环计数置0
    ' xor ecx, ecx

    ' ;循环起始
    ' Label1:

    ' ;读取第N个字节
    ' xor eax, eax
    ' mov al, byte [ebx+ecx]

    ' ;判断字节数据是否为0,0表示字符结束
    ' cmp eax, 00000000h
    ' je Label5

    ' ;判断是否为空格
    ' cmp eax, 00000020h
    ' je Label3

    ' ;判断是否为Tab
    ' cmp eax, 00000009h
    ' je Label3

    ' ;判断是否为
    ' cmp eax, 0000000Dh
    ' je Label3

    ' ;判断是否为
    ' cmp eax, 0000000Ah
    ' je Label3

    ' ;判断是否首位,如果为首字符,则进行转换
    ' cmp dword [ebp-04h], 00000001h
    ' jne Label2

    ' ;判断是否小于'a'
    ' cmp eax, 00000061h
    ' jl Label2

    ' ;判断是否大于'z'
    ' cmp eax, 0000007Ah
    ' jg Label2

    ' ;将a-z范围内的字节转成大写
    ' sub eax, 00000020h
    ' mov byte [ebx+ecx], al

    ' Label2:
    ' mov dword [ebp-04h], 00000000h

    ' jmp Label4

    ' ;空字符处理
    ' Label3:

    ' ;首位标识置1
    ' mov dword [ebp-04h], 00000001h

    ' Label4:

    ' ;计数自增
    ' inc ecx

    ' ;跳到循环首
    ' jmp Label1

    ' ;循环结束
    ' Label5:

    ' ;处理结束
    ' leave
    ' retn 0004h

  • 相关阅读:
    LightOJ 1139 8 puzzle + hdu 1043 Eight A*
    hdu 1180 优先队列 + bfs
    hdu 1270
    HDU Doing Homework
    hdu 1171 Big Event in HDU
    hdu 3613 (KMP)回文串
    POJ 3461 Oulipo(KMP)
    POJ 1565(DP状态压缩)
    NYOJ 634 万里挑一(优先队列)
    职场手记1_你想成文什么样的人
  • 原文地址:https://www.cnblogs.com/yufengs/p/6699381.html
Copyright © 2011-2022 走看看