ida/plugins/defs.h
-
__ROl__
: 参数:(value, int count)
循环左移函数,参数有两个,第一个参数为左移的数,第二个参数为左移的位数。
如果第二个参数值为负数,则实际上为循环右移-count
位。该函数的实现细节为:
先得到value
的位数,然后count
对位数取模。
如果count
值大于0,则先右移count-取模的结果,然后在左移取模的结果,得到的两个数相或,即为循环左移的结果。
如果count
值小于0,先左移在右移即可。举例来说:
value
=0110
,count
=6
value
为4位数, 6 % 4 = 2,
0110
先右移4-2=2位,得到0001
,然后在左移2位,得到1000
,0001 | 1000
结果为1001
,即循环左移结果为1001
。 __ROR1__
:
定义:inline uint8 __ROR1__(uint8 value, int count) { return __ROL__((uint8)value, -count); }