0040B851 mov eax,dword ptr [ebp-4]
0040B854 cdq
;若eax为负数,则0xFFFFFFFF & 0x00000007 <==>0x00000007,反之为0 //0xFFFFFFFF & 0x00000007 <==>0x00000007请问这个是怎么来的?为何反之为0?
0040B855 and edx,7
;使用eax加edx,如eax为负数则加7,反之加0
0040B858 add eax,edx
0040B85A sar eax,3
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
Lnairan cdq 指令把edx的每一位置成eax的最高位如果 eax 为负数,最高位就为 1, 执行& ...
WandererY 这个我知道 下面的呢
Lnairan 向零取整,被除数为负除数为正结果为负数,负数向上取整(需要加上 (2^n)-1),正数向下取整(不变)