开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 5567|回复: 18
打印 上一主题 下一主题
收起左侧

[易语言纯源码] 汇编四种循环 取文本行数速度对比

[复制链接]
结帖率:97% (31/32)
跳转到指定楼层
楼主
发表于 2019-4-18 21:10:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式   福建省福州市
分享源码
界面截图: -
是否带模块: -
备注说明: -
本帖最后由 cf2006a 于 2019-4-19 12:59 编辑
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
变量名类 型静态数组备 注
文本文本型 
t整数型 
a整数型 
b整数型 
c整数型 
文本字节集字节集 
文本 = 取重复文本 (1000, #换行符 )
t = 取启动时间 ()
计次循环首 (1000000, )
a = 文本_取行数1 (文本)
计次循环尾 ()
t = 取启动时间 () - t
调试输出 (a, t)
t = 取启动时间 ()
计次循环首 (1000000, )
b = 文本_取行数2 (文本)
计次循环尾 ()
t = 取启动时间 () - t
调试输出 (b, t)
文本字节集 = 到字节集 (文本)
t = 取启动时间 ()
计次循环首 (1000000, )
c = 汇编_取文本行数 (文本字节集)
计次循环尾 ()
t = 取启动时间 () - t
调试输出 (b, t)
t = 取启动时间 ()
计次循环首 (1000000, )
c = 取文本行数 (文本)
计次循环尾 ()
t = 取启动时间 () - t
调试输出 (c, t)
子程序名返回值类型公开备 注
取文本行数整数型 
参数名类 型参考可空数组备 注
文本文本型
置入代码 ({ 252, 51, 201, 87, 139, 125, 8, 139, 63, 131, 255, 0, 116, 37, 184, 0, 13, 10, 0, 174, 116, 20, 79, 193, 232, 8, 102, 175, 117, 6, 65, 193, 224, 8, 235, 239, 193, 224, 8, 79, 235, 233, 102, 129, 127, 253, 13, 10, 116, 1, 65, 139, 193, 95, 201, 194, 4, 0 })
返回 (0)
' cld
' xor ecx, ecx
' push edi
' mov edi, dword [ebp+0x08]
' mov edi, dword [edi]
' cmp edi, 0x00000000
' je Label1
' mov eax, 0x000A0D00
' Label4:
' scasb
' je Label2
' dec edi
' shr eax, 0x08
' scasw
' jne Label3
' inc ecx
' shl eax, 0x08
' jmp Label4
' Label3:
' shl eax, 0x08
' dec edi
' jmp Label4
' Label2:
' cmp word [edi-0x03], 0x0A0D
' je Label1
' inc ecx
' Label1:
' mov eax, ecx
' pop edi
' leave
' retn 0x0004
子程序名返回值类型公开备 注
汇编_取文本行数整数型 
参数名类 型参考可空数组备 注
参数一字节集
变量名类 型静态数组备 注
返回值整数型 
置入代码 ({ 96, 139, 69, 8, 139, 0, 139, 72, 4, 141, 88, 8, 184, 10, 0, 0, 0, 49, 210, 56, 3, 117, 1, 66, 67, 226, 248, 137, 85, 252, 97 })
返回 (返回值)
' pushad
' mov eax,[ebp+8]
' mov eax,[eax]
' mov ecx,[eax+4]
' lea ebx,[eax+8]
' mov eax,10
' xor edx,edx
' begin:
' cmp byte ptr [ebx],al
' jnz addr1
' inc edx
' addr1:
' inc ebx
' loop Begin
' mov [ebp-4],edx
' popad
子程序名返回值类型公开备 注
文本_取行数1整数型 取一个文本共有有多少行。
参数名类 型参考可空数组备 注
文本文本型
置入代码 ({ 139, 125, 8, 139, 63, 49, 192, 138, 15, 128, 249, 0, 116, 9, 71, 128, 249, 10, 117, 243, 64, 235, 240, 137, 236, 93, 194, 4, 0 })
返回 (0)
' mov edi, dword [ebp+0x08]
' mov edi, dword [edi]
' xor eax, eax
' Label2:
' mov cl, byte [edi]
' cmp cl, 0x00
' je Label1
' inc edi
' cmp cl, 0x0A
' jne Label2
' inc eax
' jmp Label2
' Label1:
' mov esp, ebp
' pop ebp
' retn 0x0004
子程序名返回值类型公开备 注
文本_取行数2整数型 取一个文本共有有多少行。
参数名类 型参考可空数组备 注
文本文本型
置入代码 ({ 139, 69, 8, 139, 48, 49, 201, 172, 132, 192, 116, 7, 60, 10, 117, 247, 65, 235, 244, 137, 200, 137, 236, 93, 194, 4, 0 })
返回 (0)
' mov eax, dword [ebp+0x08]
' mov esi, dword [eax]
' xor ecx, ecx
' Label2:
' lodsb
' test al, al
' je Label1
' cmp al, 0x0A
' jne Label2
' inc ecx
' jmp Label2
' Label1:
' mov eax, ecx
' mov esp, ebp
' pop ebp
' retn 0x0004



i支持库列表   支持库注释   
spec特殊功能支持库

结帖率:90% (26/29)

签到天数: 6 天

沙发
发表于 2019-4-18 22:11:46 | 只看该作者   北京市北京市
感谢楼主的分享
回复 支持 反对

使用道具 举报

结帖率:0% (0/3)

签到天数: 11 天

板凳
发表于 2019-4-18 22:49:43 | 只看该作者   重庆市重庆市
感谢大神分享
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)

签到天数: 2 天

地板
发表于 2019-4-18 23:47:47 | 只看该作者   广西壮族自治区柳州市
感谢分享.试试怎么样...
回复 支持 反对

使用道具 举报

结帖率:100% (6/6)

签到天数: 22 天

地下
发表于 2019-4-19 00:22:31 | 只看该作者   新疆维吾尔自治区昌吉回族自治州
感谢大神分享
回复 支持 反对

使用道具 举报

结帖率:33% (2/6)
6
发表于 2019-4-19 01:23:22 | 只看该作者   广东省*
本帖最后由 haishifu 于 2019-4-19 10:51 编辑

                                                   
回复 支持 反对

使用道具 举报

结帖率:97% (31/32)

签到天数: 22 天

7
 楼主| 发表于 2019-4-19 09:45:42 | 只看该作者   福建省福州市
haishifu 发表于 2019-4-19 01:23
为什么我写的要快那么多呢////。。。。
随便写的,没有完全优化空行。

* 1000 | 2579
* 1000 | 1328
* 1000 | 3953
* 1000 | 1188       你的 确实会更快些  

学习了!谢谢分享

点评

其实实际上并不会快,慢慢的你会发现了。。哈哈   广东省*  发表于 2019-4-19 10:51
回复 支持 反对

使用道具 举报

结帖率:0% (0/6)
8
发表于 2019-4-19 23:29:43 | 只看该作者   广东省广州市
很给力 思路学习了
回复 支持 反对

使用道具 举报

签到天数: 17 天

9
发表于 2019-4-20 14:30:23 | 只看该作者   山西省晋中市
三种循环取文本行数速度对比.e (11.89 KB, 下载次数: 7)
回复 支持 反对

使用道具 举报

签到天数: 17 天

10
发表于 2019-4-20 14:30:58 | 只看该作者   山西省晋中市
三种循环取文本行数速度对比.e (11.89 KB, 下载次数: 65)



回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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