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

  • 相关阅读:
    数值的扩展
    字符串的扩展
    变量的解构赋值整理
    let和const命令整理
    解析vue2.0中render:h=>h(App)的具体意思
    菜单栏的显示与隐藏
    vue的事件绑定
    CSS3实现3D地球自转行星公转
    MongoDB命令的简单操作(一)
    canvas扇形进度圈动态加载
  • 原文地址:https://www.cnblogs.com/yufengs/p/6699381.html
Copyright © 2011-2022 走看看