开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 7198|回复: 16
收起左侧

[已回应] 建议,在精易模块8.2.5基础上加:文本_取长度_汇编 ()

[复制链接]
结帖率:100% (13/13)
发表于 2020-6-12 11:15:20 | 显示全部楼层 |阅读模式   湖北省武汉市
为什么要用汇编的呢?大家都肯定知道,汇编快、好,如下图: 搜狗截图20200612105906.png
都是一模一样的文本,但是显然汇编得快,源码如下:
  
子程序名返回值类型公开备 注
文本_取长度_汇编整数型 文本_取长度 的汇编版本,比文本_取长度快,对于较长的文本很有优势
参数名类 型参考可空数组备 注
文本文本型
变量名类 型静态数组备 注
文本指针整数型 
置入代码 ({ 83, 139, 69, 8, 139, 0, 141, 80, 3, 139, 24, 131, 192, 4, 141, 139, 255, 254, 254, 254, 247, 211, 35, 203, 129, 225, 128, 128, 128, 128, 116, 233, 247, 193, 128, 128, 0, 0, 117, 6, 193, 233, 16, 131, 192, 2, 208, 225, 27, 194, 91, 201, 194, 4, 0 })
返回 (0)

在哪里找到的呢?在挂海论坛上找到的,原文链接:http://www.52ghai.com/thread-15893-1-1.html

评分

参与人数 2好评 +2 精币 +7 收起 理由
项目部004 + 1 + 5 感谢你的支持,精易有你更精彩
maozaiba + 1 + 2 很赞同,谢谢!

查看全部评分

发表于 2023-3-17 15:32:51 | 显示全部楼层   广西壮族自治区河池市
精易模块更新的好快
回复 支持 反对

使用道具 举报

结帖率:100% (11/11)

签到天数: 11 天

发表于 2020-10-19 19:25:03 | 显示全部楼层   陕西省渭南市
这个有源码了.就是源码也是抄的.维护不了.但速度真的快

  
子程序名返回值类型公开备 注
取文本长度_SSE2_汇编整数型 速度最快
参数名类 型参考可空数组备 注
参_文本通用型文本变量或文本指针
置入代码 ({ 139, 69, 8, 139, 0, 133, 192, 116, 59, 80, 137, 193, 102, 15, 239, 192, 131, 225, 15, 131, 224, 240, 102, 15, 111, 8, 102, 15, 116, 200, 102, 15, 215, 209, 211, 234, 211, 226, 15, 188, 210, 117, 20, 131, 192, 16, 102, 15, 111, 8, 102, 15, 116, 200, 102, 15, 215, 209, 15, 188, 210, 116, 236, 89, 41, 200, 1, 208, 201, 194, 4, 0 })
' mov eax,dword ptr ss:[ebp+0x8]
' mov eax,dword ptr ds:[eax]
' test eax,eax
' je end_
' push eax
' mov ecx,eax
' pxor xmm0,xmm0
' and ecx,0xF
' and eax,0xFFFFFFF0
' movdqa xmm1,xmmword ptr ds:[eax]
' pcmpeqb xmm1,xmm0
' pmovmskb edx,xmm1
' shr edx,cl
' shl edx,cl
' bsf edx,edx
' jne Label_a
' Label_b:
' add eax,0x10
' movdqa xmm1,xmmword ptr ds:[eax]
' pcmpeqb xmm1,xmm0
' pmovmskb edx,xmm1
' bsf edx,edx
' je Label_b
' Label_a:
' pop ecx
' sub eax,ecx
' add eax,edx
' end_:
' leave
' ret 0x4
返回 (0)

回复 支持 反对

使用道具 举报

结帖率:100% (11/11)

签到天数: 11 天

发表于 2020-10-19 19:23:04 | 显示全部楼层   陕西省渭南市
这个有源码了.就是源码也是抄的.维护不了.但速度真的快

  
子程序名返回值类型公开备 注
取文本长度_SSE2_汇编整数型 速度最快
参数名类 型参考可空数组备 注
参_文本通用型文本变量或文本指针
置入代码 ({ 139, 69, 8, 139, 0, 133, 192, 116, 59, 80, 137, 193, 102, 15, 239, 192, 131, 225, 15, 131, 224, 240, 102, 15, 111, 8, 102, 15, 116, 200, 102, 15, 215, 209, 211, 234, 211, 226, 15, 188, 210, 117, 20, 131, 192, 16, 102, 15, 111, 8, 102, 15, 116, 200, 102, 15, 215, 209, 15, 188, 210, 116, 236, 89, 41, 200, 1, 208, 201, 194, 4, 0 })
' mov eax,dword ptr ss:[ebp+0x8]
' mov eax,dword ptr ds:[eax]
' test eax,eax
' je end_
' push eax
' mov ecx,eax
' pxor xmm0,xmm0
' and ecx,0xF
' and eax,0xFFFFFFF0
' movdqa xmm1,xmmword ptr ds:[eax]
' pcmpeqb xmm1,xmm0
' pmovmskb edx,xmm1
' shr edx,cl
' shl edx,cl
' bsf edx,edx
' jne Label_a
' Label_b:
' add eax,0x10
' movdqa xmm1,xmmword ptr ds:[eax]
' pcmpeqb xmm1,xmm0
' pmovmskb edx,xmm1
' bsf edx,edx
' je Label_b
' Label_a:
' pop ecx
' sub eax,ecx
' add eax,edx
' end_:
' leave
' ret 0x4
返回 (0)

点评

这个汇编是真的吊打其他同命令汇编   广东省潮州市  发表于 2021-1-16 22:24
回复 支持 反对

使用道具 举报

发表于 2020-7-10 15:14:17 | 显示全部楼层   浙江省杭州市
支持一下 支持易语言
回复 支持 反对

使用道具 举报

结帖率:0% (0/2)
发表于 2020-6-28 15:06:33 | 显示全部楼层   山东省济宁市
路过,飘过,走过,看过
回复 支持 反对

使用道具 举报

结帖率:100% (13/13)
 楼主| 发表于 2020-6-24 19:26:22 | 显示全部楼层   湖北省武汉市
项目部006 发表于 2020-6-18 10:09
这是机器码, 不是汇编, 虽然可以利用工具反编译出来转成汇编, 但这个意思好像就是你给了个模块, 没有给模 ...

汇编代码:
  1. push ebx
  2. mov eax,[ebp+0x8]
  3. mov eax,[eax]
  4. lea edx,[eax+0x3]
  5. mov ebx,[eax]
  6. add eax,byte +0x4
  7. lea ecx,[ebx-0x1010101]
  8. not ebx
  9. and ecx,ebx
  10. and ecx,0x80808080
  11. jz 0x9
  12. test ecx,0x8080
  13. jnz 0x2e
  14. shr ecx,byte 0x10
  15. add eax,byte +0x2
  16. shl cl,1
  17. sbb eax,edx
  18. pop ebx
  19. leave
  20. ret 0x4
复制代码
回复 支持 反对

使用道具 举报

结帖率:92% (207/225)

签到天数: 14 天

发表于 2020-6-18 18:09:19 | 显示全部楼层   广西壮族自治区崇左市
sinewtec 发表于 2020-6-12 11:18
只想知道离开了模块 你还会不会编程

没了模块,没了核心库,我压根连易语言都不装了
回复 支持 反对

使用道具 举报

签到天数: 3 天

发表于 2020-6-18 10:09:04 | 显示全部楼层   广东省揭阳市
gua 发表于 2020-6-17 09:53
代码不已经说了?
[e=1].版本 2

这是机器码, 不是汇编, 虽然可以利用工具反编译出来转成汇编, 但这个意思好像就是你给了个模块, 没有给模块源码, 然后告诉我说有工具可以反编译, 你反编译一下模块然后加入到精易模块里, 差不多是这么个意思
回复 支持 反对

使用道具 举报

结帖率:100% (13/13)
 楼主| 发表于 2020-6-17 09:54:06 | 显示全部楼层   湖北省武汉市
项目部006 发表于 2020-6-17 08:14
没有汇编代码不会加入, 如果用到置入代码的, 请提供汇编代码, 不然不好维护修改

.版本 2

.子程序 文本_取长度_汇编, 整数型, , 文本_取长度 的汇编版本,比文本_取长度快,对于较长的文本很有优势
.参数 文本, 文本型
.局部变量 文本指针, 整数型

置入代码 ({ 83, 139, 69, 8, 139, 0, 141, 80, 3, 139, 24, 131, 192, 4, 141, 139, 255, 254, 254, 254, 247, 211, 35, 203, 129, 225, 128, 128, 128, 128, 116, 233, 247, 193, 128, 128, 0, 0, 117, 6, 193, 233, 16, 131, 192, 2, 208, 225, 27, 194, 91, 201, 194, 4, 0 })

返回 (0)
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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