首页
社区
课程
招聘
[旧帖] [求助]请教一下,shr/rcr循环移位的代码是做什么的?经常见到,代码见内 0.00雪花
发表于: 2008-3-9 17:21 3669

[旧帖] [求助]请教一下,shr/rcr循环移位的代码是做什么的?经常见到,代码见内 0.00雪花

2008-3-9 17:21
3669
004226DF  |> /D1E9          /shr     ecx, 1                  ;  逻辑左移1位
004226E1  |.  |D1DB          |rcr     ebx, 1                  ;  带进位的循环右移1位
004226E3  |.  |D1EA          |shr     edx, 1                  ;  逻辑左移1位
004226E5  |.  |D1D8          |rcr     eax, 1                  ;  带进位的循环右移1位
004226E7  |.  |0BC9          |or      ecx, ecx
004226E9  |.^\75 F4         \jnz     short 004226DF

004226EB  |.  F7F3          div     ebx
004226ED  |.  8BC8          mov     ecx, eax
004226EF  |.  F76424 14     mul     dword ptr [esp+14]
004226F3  |.  91            xchg    eax, ecx
004226F4  |.  F76424 10     mul     dword ptr [esp+10]
004226F8  |.  03D1          add     edx, ecx
004226FA  |.  72 0E         jb      short 0042270A
004226FC  |.  3B5424 0C     cmp     edx, dword ptr [esp+C]
00422700  |.  77 08         ja      short 0042270A
00422702  |.  72 0E         jb      short 00422712
00422704  |.  3B4424 08     cmp     eax, dword ptr [esp+8]
00422708  |.  76 08         jbe     short 00422712
0042270A  |>  2B4424 10     sub     eax, dword ptr [esp+10]
0042270E  |.  1B5424 14     sbb     edx, dword ptr [esp+14]
00422712  |>  2B4424 08     sub     eax, dword ptr [esp+8]
00422716  |.  1B5424 0C     sbb     edx, dword ptr [esp+C]
0042271A  |.  F7DA          neg     edx
0042271C  |.  F7D8          neg     eax
0042271E  |.  83DA 00       sbb     edx, 0
00422721  |>  5B            pop     ebx
00422722  \.  C2 1000       retn    10

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
就是最上面这段,经常见到,一直不明白这个是得出一个什么结果??

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 220
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
004226DF  |> /D1E9          /shr     ecx, 1                  ;  逻辑右移1位,将ecx的最低位送入CF,最高位送0
004226E1  |.  |D1DB          |rcr     ebx, 1                  ;  带进位的循环右移1位,CF位送ebx最高位,ebx最低位送CF
004226E3  |.  |D1EA          |shr     edx, 1                  ;  逻辑右移1位
004226E5  |.  |D1D8          |rcr     eax, 1                  ;  带进位的循环右移1位
004226E7  |.  |0BC9          |or      ecx, ecx
004226E9  |.^\75 F4         \jnz     short 004226DF

上面一段代码ecx:ebx,组成edx:eax组成64为数据,进行右移操作
2008-3-9 18:07
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢啦~~~~
你一说我想起上学时好像老师讲过
现在也印象模糊了,要好好研究一番才能想起来~~~~~~~~~
2008-3-9 20:30
0
游客
登录 | 注册 方可回帖
返回