|
- 正在编译现行程序
- 正在检查重复名称...
- 正在预处理现行程序
- 正在进行名称连接...
- 正在统计需要编译的子程序
- 正在编译...
- 正在生成主程序入口代码
- 程序代码编译成功
- 正在封装易格式目的代码
- 开始运行被调试程序
- * 比较 系统核心支持库的 取文本长度() 与 此汇编程序的效率
- * 文本长度:1000000000 核心库耗时(毫秒):1216 汇编耗时(毫秒):780 效率提升:155%
- * 文本长度:1000000000 核心库耗时(毫秒):1794 汇编耗时(毫秒):749 效率提升:239%
- * 文本长度:1000000000 核心库耗时(毫秒):1763 汇编耗时(毫秒):749 效率提升:235%
- * 文本长度:1000000000 核心库耗时(毫秒):1779 汇编耗时(毫秒):795 效率提升:223%
- * 文本长度:1000000000 核心库耗时(毫秒):1840 汇编耗时(毫秒):749 效率提升:245%
- * 文本长度:1000000000 核心库耗时(毫秒):1763 汇编耗时(毫秒):765 效率提升:230%
- * 文本长度:1000000000 核心库耗时(毫秒):1779 汇编耗时(毫秒):795 效率提升:223%
- * 文本长度:1000000000 核心库耗时(毫秒):1903 汇编耗时(毫秒):749 效率提升:254%
- * 文本长度:1000000000 核心库耗时(毫秒):1794 汇编耗时(毫秒):764 效率提升:234%
- * 文本长度:1000000000 核心库耗时(毫秒):1794 汇编耗时(毫秒):764 效率提升:234%
- * 文本长度:1000000000 核心库耗时(毫秒):1794 汇编耗时(毫秒):764 效率提升:234%
- * 文本长度:1000000000 核心库耗时(毫秒):1778 汇编耗时(毫秒):765 效率提升:232%
- * 文本长度:1000000000 核心库耗时(毫秒):1763 汇编耗时(毫秒):765 效率提升:230%
- * 文本长度:1000000000 核心库耗时(毫秒):1810 汇编耗时(毫秒):764 效率提升:236%
- * 文本长度:1000000000 核心库耗时(毫秒):1794 汇编耗时(毫秒):749 效率提升:239%
- * 文本长度:1000000000 核心库耗时(毫秒):1763 汇编耗时(毫秒):748 效率提升:235%
- * 文本长度:1000000000 核心库耗时(毫秒):1778 汇编耗时(毫秒):749 效率提升:237%
- * 文本长度:1000000000 核心库耗时(毫秒):1778 汇编耗时(毫秒):749 效率提升:237%
- * 文本长度:1000000000 核心库耗时(毫秒):1763 汇编耗时(毫秒):749 效率提升:235%
- * 文本长度:1000000000 核心库耗时(毫秒):1763 汇编耗时(毫秒):764 效率提升:230%
- * 完成 最大效率:254%
- 被调试易程序运行完毕
复制代码
- .版本 2
- .程序集 程序集1
- .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
- _临时子程序 () ' 在初始化代码执行完毕后调用测试代码
- 返回 (0) ' 可以根据您的需要返回任意数值
- .子程序 _临时子程序
- .局部变量 长度, 整数型
- .局部变量 文本, 文本型
- .局部变量 时间, 整数型
- .局部变量 耗时A, 整数型
- .局部变量 耗时B, 整数型
- .局部变量 效率, 整数型
- .局部变量 最大效率, 整数型
- .局部变量 文本长度, 整数型
- .局部变量 文本长度2, 整数型
- .变量循环首 (0, 10000, 1, 长度)
- 文本 = 取空白文本 (长度)
- .如果真 (取文本长度2 (文本) ≠ 取文本长度 (文本))
- 输出调试文本 (“错误”)
- 结束 ()
- .如果真结束
- .变量循环尾 ()
- 文本 = 取空白文本 (1000000000)
- 时间 = 取启动时间 ()
- 输出调试文本 (“比较 系统核心支持库的 取文本长度() 与 此汇编程序的效率”)
- .计次循环首 (20, )
- 文本长度 = 取文本长度 (文本)
- 耗时A = 取启动时间 () - 时间
- 时间 = 取启动时间 ()
- 文本长度2 = 取文本长度2 (文本)
- .如果真 (文本长度 ≠ 文本长度2)
- 输出调试文本 (“错误”)
- 结束 ()
- .如果真结束
- 耗时B = 取启动时间 () - 时间
- 效率 = 耗时A ÷ 耗时B × 100
- .如果真 (效率 > 最大效率)
- 最大效率 = 效率
- .如果真结束
- 输出调试文本 (“文本长度:” + 到文本 (文本长度2) + “ 核心库耗时(毫秒):” + 到文本 (耗时A) + “ 汇编耗时(毫秒):” + 到文本 (耗时B) + “ 效率提升:” + 到文本 (效率) + “%”)
- .计次循环尾 ()
- 输出调试文本 (“完成 最大效率:” + 到文本 (最大效率) + “%”)
- .子程序 取文本长度2, 整数型, 公开, MASM汇编指令取文本型数据的长度,不包含结束0。(比系统核心支持库自带的 取文本长度() 效率提升200%以上)
- .参数 文本数据, 文本型, , 参数值指定欲检查其长度的文本数据。
- 置入代码 ({ 83, 81, 139, 69, 8, 131, 248, 0, 127, 7, 51, 192, 233, 15, 1, 0, 0, 139, 0, 131, 248, 0, 127, 7, 51, 192, 233, 1, 1, 0, 0, 139, 200, 139, 24, 10, 219, 116, 4, 10, 255, 117, 5, 233, 227, 0, 0, 0, 15, 203, 10, 219, 116, 4, 10, 255, 117, 5, 233, 212, 0, 0, 0, 131, 192, 4, 139, 24, 10, 219, 116, 4, 10, 255, 117, 5, 233, 194, 0, 0, 0, 15, 203, 10, 219, 116, 4, 10, 255, 117, 5, 233, 179, 0, 0, 0, 131, 192, 4, 139, 24, 10, 219, 116, 4, 10, 255, 117, 5, 233, 161, 0, 0, 0, 15, 203, 10, 219, 116, 4, 10, 255, 117, 5, 233, 146, 0, 0, 0, 131, 192, 4, 139, 24, 10, 219, 116, 4, 10, 255, 117, 5, 233, 128, 0, 0, 0, 15, 203, 10, 219, 116, 4, 10, 255, 117, 2, 235, 116, 131, 192, 4, 139, 24, 10, 219, 116, 4, 10, 255, 117, 2, 235, 101, 15, 203, 10, 219, 116, 4, 10, 255, 117, 2, 235, 89, 131, 192, 4, 139, 24, 10, 219, 116, 4, 10, 255, 117, 2, 235, 74, 15, 203, 10, 219, 116, 4, 10, 255, 117, 2, 235, 62, 131, 192, 4, 139, 24, 10, 219, 116, 4, 10, 255, 117, 2, 235, 47, 15, 203, 10, 219, 116, 4, 10, 255, 117, 2, 235, 35, 131, 192, 4, 139, 24, 10, 219, 116, 4, 10, 255, 117, 2, 235, 20, 15, 203, 10, 219, 116, 4, 10, 255, 117, 2, 235, 8, 131, 192, 4, 233, 14, 255, 255, 255, 138, 24, 10, 219, 117, 2, 235, 3, 64, 235, 245, 43, 193, 89, 91, 201, 194, 4, 0 })
- ' push ebx
- ' push ecx
- ' mov eax,[ebp+8]
- ' .if sdword ptr eax <= 0
- ' xor eax,eax
- ' jmp ASM_END
- ' .endif
- ' mov eax,[eax]
- ' .if sdword ptr eax <= 0
- ' xor eax,eax
- ' jmp ASM_END
- ' .endif
- ' mov ecx,eax
- ' .while 1
- ' mov ebx,[eax]
- ' .if !bl || !bh
- ' .break
- ' .endif
- ' bswap ebx
- ' .if !bl || !bh
- ' .break
- ' .endif
- ' add eax,4
- ' mov ebx,[eax]
- ' .if !bl || !bh
- ' .break
- ' .endif
- ' bswap ebx
- ' .if !bl || !bh
- ' .break
- ' .endif
- ' add eax,4
- ' mov ebx,[eax]
- ' .if !bl || !bh
- ' .break
- ' .endif
- ' bswap ebx
- ' .if !bl || !bh
- ' .break
- ' .endif
- ' add eax,4
- ' mov ebx,[eax]
- ' .if !bl || !bh
- ' .break
- ' .endif
- ' bswap ebx
- ' .if !bl || !bh
- ' .break
- ' .endif
- ' add eax,4
- ' mov ebx,[eax]
- ' .if !bl || !bh
- ' .break
- ' .endif
- ' bswap ebx
- ' .if !bl || !bh
- ' .break
- ' .endif
- ' add eax,4
- ' mov ebx,[eax]
- ' .if !bl || !bh
- ' .break
- ' .endif
- ' bswap ebx
- ' .if !bl || !bh
- ' .break
- ' .endif
- ' add eax,4
- ' mov ebx,[eax]
- ' .if !bl || !bh
- ' .break
- ' .endif
- ' bswap ebx
- ' .if !bl || !bh
- ' .break
- ' .endif
- ' add eax,4
- ' mov ebx,[eax]
- ' .if !bl || !bh
- ' .break
- ' .endif
- ' bswap ebx
- ' .if !bl || !bh
- ' .break
- ' .endif
- ' add eax,4
- ' .endw
- ' .while 1
- ' mov bl,[eax]
- ' .if !bl
- ' .break
- ' .endif
- ' inc eax
- ' .endw
- ' sub eax,ecx
- ' ASM_END:
- ' pop ecx
- ' pop ebx
- ' leave
- ' retn 4
- 返回 (0)
复制代码 |
|