设为首页收藏本站淘宝杂货铺

从F到0 - From F to 0

 找回密码
 注册已关闭
搜索
查看: 2158|回复: 0
收起左侧

易语言置入代码极速转换文本型字符串大小写的方法

[复制链接]
发表于 2018-9-29 22:59:44 | 显示全部楼层 |阅读模式

  1. .版本 2
  2. .支持库 spec

  3. .程序集 程序集1

  4. .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
  5. .局部变量 字符串, 文本型
  6. .局部变量 时间, 整数型


  7. 字符串 = 取重复文本 (2000000, “ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 1234567890 Hello World! 中文测试”)
  8. 调试输出 (“转换开始”)

  9. 时间 = 取启动时间 ()
  10. 大小写转换 (字符串, 真)
  11. 大小写转换 (字符串, 假)



  12. 调试输出 (“置入代码耗时”, 取启动时间 () - 时间)
  13. 时间 = 取启动时间 ()


  14. 字符串 = 到大写 (字符串)
  15. 字符串 = 到小写 (字符串)
  16. 调试输出 (“核心库耗时”, 取启动时间 () - 时间)


  17. 返回 (0)  ' 可以根据您的需要返回任意数值

  18. .子程序 大小写转换, , 公开, 转换文本型字符串的大小写
  19. .参数 字符串, 文本型, 参考, 欲转换大小写的文本
  20. .参数 到大写, 逻辑型, 可空, 真为到大写,假为到小写

  21. 置入代码 ({ 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 })
  22. ' pushad
  23. ' mov ebx,[ebp+8] ;文本变量地址
  24. ' mov ah,[ebp+12] ;是否到大写
  25. ' and ah,1
  26. ' mov ebx,[ebx]  ;文本数据地址
  27. ' START:
  28. ' mov al,[ebx] ;读文本Ascii码送AL
  29. ' .if al == 0 ;遇到空字符结束转换
  30. ' popad
  31. ' leave
  32. ' retn 8
  33. ' .endif
  34. ' call TEXT_CALC ;开始转换
  35. ' mov [ebx],al ;转换结果写回文本
  36. ' inc ebx ;读下一个字符
  37. ' JMP START
  38. ' TEXT_CALC: ;AH:大小写(0或1) AL:字符串Ascii 结果送AL
  39. ' .if ah == 1 ;到大写
  40. ' .if al >= 97 && al<=122 ;小写字母
  41. ' sub al,32
  42. ' .endif
  43. ' .elseif  ;到小写
  44. ' .if al >= 65 && al <=90
  45. ' add al,32
  46. ' .endif
  47. ' .endif
  48. ' ret
复制代码


相关帖子

您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

QQ|手机版|Archiver|从F到0 ( 蒙ICP备17002595号-1 )
蒙公网安备15010402000325号

腾讯云安全认证

GMT+8, 2024-4-28 05:34 , Processed in 0.980056 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表