|
- .版本 2
- .支持库 spec
- .程序集 程序集1
- .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
- .局部变量 字符串, 文本型
- .局部变量 时间, 整数型
- 字符串 = 取重复文本 (2000000, “ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 1234567890 Hello World! 中文测试”)
- 调试输出 (“转换开始”)
- 时间 = 取启动时间 ()
- 大小写转换 (字符串, 真)
- 大小写转换 (字符串, 假)
- 调试输出 (“置入代码耗时”, 取启动时间 () - 时间)
- 时间 = 取启动时间 ()
- 字符串 = 到大写 (字符串)
- 字符串 = 到小写 (字符串)
- 调试输出 (“核心库耗时”, 取启动时间 () - 时间)
- 返回 (0) ' 可以根据您的需要返回任意数值
- .子程序 大小写转换, , 公开, 转换文本型字符串的大小写
- .参数 字符串, 文本型, 参考, 欲转换大小写的文本
- .参数 到大写, 逻辑型, 可空, 真为到大写,假为到小写
- 置入代码 ({ 96, 139, 93, 8, 138, 101, 12, 128, 228, 1, 139, 27, 138, 3, 10, 192, 117, 5, 97, 201, 194, 8, 0, 232, 5, 0, 0, 0, 136, 3, 67, 235, 235, 128, 252, 1, 117, 12, 60, 97, 114, 18, 60, 122, 119, 14, 44, 32, 235, 10, 60, 65, 114, 6, 60, 90, 119, 2, 4, 32, 195 })
- ' pushad
- ' mov ebx,[ebp+8] ;文本变量地址
- ' mov ah,[ebp+12] ;是否到大写
- ' and ah,1
- ' mov ebx,[ebx] ;文本数据地址
- ' START:
- ' mov al,[ebx] ;读文本Ascii码送AL
- ' .if al == 0 ;遇到空字符结束转换
- ' popad
- ' leave
- ' retn 8
- ' .endif
- ' call TEXT_CALC ;开始转换
- ' mov [ebx],al ;转换结果写回文本
- ' inc ebx ;读下一个字符
- ' JMP START
- ' TEXT_CALC: ;AH:大小写(0或1) AL:字符串Ascii 结果送AL
- ' .if ah == 1 ;到大写
- ' .if al >= 97 && al<=122 ;小写字母
- ' sub al,32
- ' .endif
- ' .elseif ;到小写
- ' .if al >= 65 && al <=90
- ' add al,32
- ' .endif
- ' .endif
- ' ret
复制代码
|
|