首页
社区
课程
招聘
[求助]请各位大侠帮帮忙看看,头都搞大了!
发表于: 2005-1-19 22:16 5539

[求助]请各位大侠帮帮忙看看,头都搞大了!

2005-1-19 22:16
5539
请问各位大虾一个汇编问题:
ROL DWORD PTR DS:[EAX],5

ROR DWROD PTR D:[EAX+4],7
[EAX]=31 32 33 34 35 36 37 38
到底是怎么循环移动的!谢谢!
rol的运算:
31 32 33 34 的二进制是110001001100100011001100110100
但是电脑循环后的结果是100110010001100110011010000110 (26466686)
ror的运算:
35 36 37 38 的二进制是110101001101100011011100111000
但是电脑运算后的结果是1101100011011100111000001101010 (6c6e706a)
不知道电脑是怎么位移循环的!看了好久都不知道是怎么的来的!查了资料也查不到!请各位大侠帮帮忙看看!小弟在此感谢!

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
2
31 32 33 34 (hex) 的二进制 :
00110001  00110010  00110011  00110100
不要把最左边的 0 忽略,你是要保留它们才可以进行循环。
我估计你把 0x31323334 的值放进小算盘去转换成二进制,小算盘把最左边的两个 0 删掉了,得出你写的那个数字

进行 ROL,把左边 5 个 bit 放到右边 :
00110001  => 00100110
00110010  => 01000110
00110011  => 01100110
00110100  => 10000110

成为了 00100110 01000110 01100110 10000110  ( 0x26466686 )
2005-1-20 08:27
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢riijj的热心帮助!
2005-1-20 10:40
0
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
4
这个说法不对,我误解了
这里的 dword ptr 指明了 32 bit 一起循环
2005-1-20 22:15
0
游客
登录 | 注册 方可回帖
返回
//