为编程爱好者分享易语言教程源码的资源网

网站首页 > 易语言相关 > 易语言例程 正文

易语言置入汇编GetRolHash

三叶资源网 2021-03-26 22:56:52 易语言例程 952 ℃ 0 评论

DWORD GetRolHash(char lpszBuffer)

{

DWORD dwHash = 0;

while(lpszBuffer)

{

dwHash = (  (dwHash <<25 ) | (dwHash>>7) );

dwHash = dwHash+*lpszBuffer;

lpszBuffer++;

}

return dwHash;

}


     


       某项工作中使用到计算hash值,于是想使用易语言写一个工具,

但是易语言一直很诡异,计算不出正确值.导致原因可能由于易语言中没有DWORD类型,并且整数四则运算是当作双精度浮点数来计算,搞得很纠结.

无奈写了个置入汇编版的,经过测试,完美无bug

.版本 2
.支持库 spec

.程序集 程序集1

.子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行

' 多次计算为了测试否是堆栈有问题
.计次循环首 (11, )
    调试输出 (GetRolHash (“”))
.计次循环尾 ()

返回 (0)  ' 可以根据您的需要返回任意数值

.子程序 GetRolHash, 文本型
.参数 string, 文本型
.局部变量 nHash, 整数型

nHash = GetRolHash0 (取变量数据地址 (string))
返回 (“0x” + 取十六进制文本 (nHash))

.子程序 GetRolHash0, 整数型
.参数 string, 整数型

置入代码 ({ 137, 236, 93, 139, 84, 36, 4, 51, 201, 235, 9, 193, 201, 7, 15, 190, 192, 3, 200, 66, 138, 2, 132, 192, 117, 241, 139, 193, 195 })
返回 (0)

@taizhong


文件下载

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
易语言例程多线程传递聊呗网页端路由器换IP正则整理排序windows 98风格SUI多线程注册组合框火山移动服务器易语言刮刮卡源码IP地址定位SQLSign计算异步服务总结应用安全CALLsqllite鱼刺类对象操作
最新评论