汇编_十六到十模块源码
.版本 2
.支持库 spec
.程序集 程序集1
.子程序 _启动子程序, 整数型
.局部变量 N, 整数型
.局部变量 Time, 整数型
N = 1024 × 1024
调试输出 (十六到十_汇编 (“7FFFFFFF”))
调试输出 (精易_十六进制 (“7FFFFFFF”))
调试输出 (精易_进制_十六到十 (“7FFFFFFF”))
Time = API_timeGetTime ()
.计次循环首 (N, )
十六到十_汇编 (“7FFFFFFF”)
.计次循环尾 ()
调试输出 (“汇编”, API_timeGetTime () - Time)
Time = API_timeGetTime ()
.计次循环首 (N, )
精易_十六进制 (“7FFFFFFF”)
.计次循环尾 ()
调试输出 (“精易1”, API_timeGetTime () - Time)
Time = API_timeGetTime ()
.计次循环首 (N, )
精易_进制_十六到十 (“7FFFFFFF”)
.计次循环尾 ()
调试输出 (“精易2”, API_timeGetTime () - Time)
返回 (0)
.子程序 精易_十六进制, 整数型
.参数 十六进制文本, 文本型
.局部变量 局部_十六进制, 字节集
.局部变量 局部_计次, 整数型
.局部变量 局部_十六进制数, 整数型
.局部变量 局部_结果, 整数型
局部_十六进制 = 到字节集 (十六进制文本)
.计次循环首 (取字节集长度 (局部_十六进制), 局部_计次)
.判断开始 (局部_十六进制 [局部_计次] ≥ 97) ' 十六进制 [计次] ≤ 102
局部_十六进制数 = 局部_十六进制 [局部_计次] - 87 ' 小写
.判断 (局部_十六进制 [局部_计次] ≥ 65) ' 十六进制 [计次] ≤ 70
局部_十六进制数 = 局部_十六进制 [局部_计次] - 55 ' 大写
.默认
局部_十六进制数 = 局部_十六进制 [局部_计次] - 48 ' 数字
.判断结束
局部_结果 = 左移 (局部_结果, 4) + 局部_十六进制数 ' 左移4位 相当于乘以16
.计次循环尾 ()
返回 (局部_结果)
.子程序 精易_进制_十六到十, 长整数型, , 十六进制到十进制(已优化算法),源码作者:QQ418995189
.参数 十六进制文本, 文本型, , 字母不区分大小写
.局部变量 局部_十六进制, 字节集, , , ebp-0x4
.局部变量 局部_循环变量, 整数型, , , ebp-0x8
.局部变量 局部_十六进制数, 整数型, , , ebp-0xc
.局部变量 局部_高32位, 整数型, , , ebp-0x10
.局部变量 局部_高次方数, 整数型, , , ebp-0x14
.局部变量 局部_低32位, 整数型, , , ebp-0x18
.局部变量 局部_低次方数, 整数型, , , ebp-0x1c
.局部变量 局部_结果, 长整数型, , , ebp-0x20 ebp-0x24
局部_十六进制 = 取重复字节集 (16, { 48 }) + 到字节集 (十六进制文本)
局部_十六进制 = 取字节集右边 (局部_十六进制, 16)
.变量循环首 (取字节集长度 (局部_十六进制), 1, -1, 局部_循环变量)
.判断开始 (局部_十六进制 [局部_循环变量] ≥ 97) ' 十六进制 [计次] ≤ 102
局部_十六进制数 = 局部_十六进制 [局部_循环变量] - 87 ' 小写
.判断 (局部_十六进制 [局部_循环变量] ≥ 65) ' 十六进制 [计次] ≤ 70
局部_十六进制数 = 局部_十六进制 [局部_循环变量] - 55 ' 大写
.默认
局部_十六进制数 = 局部_十六进制 [局部_循环变量] - 48 ' 数字
.判断结束
.如果 (局部_循环变量 ≤ 8)
局部_高32位 = 局部_高32位 + 局部_十六进制数 × 求次方 (16, 局部_高次方数)
局部_高次方数 = 局部_高次方数 + 1
.否则
局部_低32位 = 局部_低32位 + 局部_十六进制数 × 求次方 (16, 局部_低次方数)
局部_低次方数 = 局部_低次方数 + 1
.如果结束
.变量循环尾 ()
置入代码 ({ 139, 69, 232, 137, 69, 220, 139, 69, 240, 137, 69, 224 })
' label 低次方数 at ebp-0x1c
' label 高32位 at ebp-0x10
' label 低32位 at ebp-0x18
' label 结果高32位 at ebp-0x20
' label 结果低32位 at ebp-0x24
' mov eax,[低32位]
' mov [结果低32位],eax
' mov eax,[高32位]
' mov [结果高32位],eax
返回 (局部_结果)
.子程序 十六到十_汇编, 整数型, , 遇到错误时终止;作者混沌(QQ 1339307648)
.参数 十六进制, 文本型
置入代码 ({ 49, 192, 139, 93, 8, 139, 27, 133, 219, 116, 55, 49, 210, 138, 19, 67, 128, 250, 57, 119, 10, 128, 250, 48, 114, 5, 128, 234, 48, 235, 28, 128, 250, 70, 119, 10, 128, 250, 65, 114, 5, 128, 234, 55, 235, 13, 128, 250, 102, 119, 15, 128, 250, 97, 114, 10, 128, 234, 87, 193, 224, 4, 1, 208, 235, 203, 93, 194, 4, 0 })
返回 (0)