精易论坛

标题: 长整数的左移和右移置入代码 [打印本页]

作者: jr21066    时间: 2015-6-30 19:34
标题: 长整数的左移和右移置入代码
本帖最后由 jr21066 于 2015-6-30 19:48 编辑
  
子程序名返回值类型公开备 注
左移长整数长整数型 
参数名类 型参考可空数组备 注
参数一长整数型
位数整数型
置入代码 ({139,69,8,139,85,12,139,77,16,209,224,209,210,226,250,201,195})
返回 (0)
子程序名返回值类型公开备 注
右移长整数长整数型 
参数名类 型参考可空数组备 注
参数一长整数型
位数整数型
置入代码 ({ 139, 69, 8, 139, 85, 12, 139, 77, 16, 209, 234, 209, 216, 226, 250, 201, 195 })
返回 (0)



作者: jr21066    时间: 2015-6-30 19:53
随便发个注释

置入代码 ({139,69,8,139,85,12,139,77,16,209,224,209,210,226,250,201,195})
mov eax,dword ptr [ebp+08h]  取参数低位
mov edx,dword ptr [ebp+0Ch]  取参数高位,长整数是两个整数合并成的.低位在前
mov ecx,dword ptr [ebp+10h]  取第二个参数
Label1:
shl eax,1  左移一位
rcl edx,1  算术左移.将进位寄存器的值补进edx低位
loop Label1 循环移位次数
leave
ret


置入代码 ({ 139, 69, 8, 139, 85, 12, 139, 77, 16, 209, 234, 209, 216, 226, 250, 201, 195 })
mov eax,dword ptr [ebp+08h]  取参数低位
mov edx,dword ptr [ebp+0Ch]  取参数高位,长整数是两个整数合并成的.低位在前
mov ecx,dword ptr [ebp+10h]  取第二个参数
Label1:
shr edx,1 右移一位
rcr eax,1 算术右移,将进位寄存器值补进eax高位
loop Label1  循环移位次数
leave
ret

作者: 346196247    时间: 2015-7-2 16:55
菜鸟,完全不明
作者: 752151619    时间: 2015-7-3 06:59
看一看了。。。。。。。。。。
作者: 单人多情    时间: 2015-7-3 16:15
菜鸟,完全不明,
作者: qq1030655828    时间: 2020-10-21 23:26
jr21066 发表于 2015-6-30 19:53
随便发个注释

置入代码 ({139,69,8,139,85,12,139,77,16,209,224,209,210,226,250,201,195})

能出一个如何实现实现C++中的rotl64吗?我用C++直接能调用,但是再E语言中就抓瞎勒
作者: jr21066    时间: 2020-10-22 08:44
qq1030655828 发表于 2020-10-21 23:26
能出一个如何实现实现C++中的rotl64吗?我用C++直接能调用,但是再E语言中就抓瞎勒 ...

rotl64是无符号数左移吧.易里边没有无符号数
作者: 雨中客    时间: 2024-2-16 14:15
jr21066 发表于 2015-6-30 19:53
随便发个注释

置入代码 ({139,69,8,139,85,12,139,77,16,209,224,209,210,226,250,201,195})

有BUG,位数0或者在计次循环里会崩溃




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4