精易论坛

标题: 文本_逐字分割_快速 欢迎测试 [打印本页]

作者: jr21066    时间: 2018-9-4 23:56
标题: 文本_逐字分割_快速 欢迎测试
处理超长文本时,速度会有所提升

  
子程序名返回值类型公开备 注
文本_逐字分割_快速整数型 超长文本计算时有优势
参数名类 型参考可空数组备 注
参_内容文本型
参_文本数组文本型
变量名类 型静态数组备 注
返回值文本型 
返回值 = 取空白文本 (取文本长度 (参_内容) × 2)
置入代码 ({ 139, 69, 8, 139, 48, 139, 125, 252, 172, 60, 0, 116, 42, 60, 32, 116, 247, 60, 9, 116, 243, 60, 13, 116, 239, 60, 10, 116, 235, 168, 128, 116, 16, 60, 161, 117, 10, 134, 224, 172, 60, 161, 116, 220, 134, 224, 78, 170, 172, 170, 176, 9, 170, 235, 209, 49, 192, 170 })
参_文本数组 = 分割文本 (返回值, 到文本 ({ 9 }), )
返回 (取数组成员数 (参_文本数组))
' mov eax,dword ptr [ebp+08h]  取参数文本地址
' mov esi,dword ptr [eax]
' mov edi ,dword ptr [ebp-04h]  取变量文本地址
' begin:
' lodsb
' cmp al,0    内容结束退出
' jz addrend
' cmp al,32   不要空格
' jz begin
' cmp al,9   不要制表符
' jz Begin
' cmp al,13   不要回车
' jz begin
' cmp al,10  不要换行
' jz begin
' test al,10000000b  单字符跳
' jz addr2
' cmp al,161  判断是否全角空格
' jnz addr3
' xchg ah,al  保存al数值
' lodsb
' cmp al,161
' jz begin   不要全角空格
' xchg ah,al  恢复al数值
' dec esi
' addr3:
' stosb
' lodsb
' addr2:
' stosb
' mov al,9  写分割符
' stosb
' jmp begin
' addrend:
' xor eax,eax  写结束标志
' stosb



作者: cf2006a    时间: 2018-9-5 09:12
学习了,慢慢消化
作者: 大家好我是新手    时间: 2018-9-5 15:46
大神如此牛逼呢
作者: hanson1025    时间: 2018-9-5 17:45
这个厉害了!!!!!!!!!!!!!!!
作者: cf2006a    时间: 2018-9-6 16:46
也是 返回 分割 到数组 有没有汇编里直接分割到数组的例子 写个
作者: jr21066    时间: 2018-9-6 17:06
cf2006a 发表于 2018-9-6 16:46
也是 返回 分割 到数组 有没有汇编里直接分割到数组的例子 写个

在看.不一定行.
如果有内存分配就不弄了.
为了一点点快把兼容性就搞没了.
作者: cf2006a    时间: 2018-9-6 20:51
lodsb  这个命令没有直接 找字节集 循环快 用byte【】,0x0循环会更快
作者: 阿宝 666    时间: 2018-9-7 22:32

作者: yunying    时间: 2018-9-8 20:55
提示: 作者被禁止或删除 内容自动屏蔽
作者: longsheng16    时间: 2018-10-31 10:28
谢谢谢谢,谢谢分享
作者: 小清晰2020    时间: 2020-9-14 14:32
测试下,好用不
作者: gxfc900    时间: 2023-10-2 09:45
学习了,慢慢消化




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4