最近在看《c++反汇编与逆向分析技术揭秘》中取模运算部分有些不理解的地方
1.上图红线部分的or运算是在干什么,感觉第二步的and指令执行完后已经得到结果了,为什么需要再进行or运算
2.画蓝线部分的jns跳转是为了干什么呀,没看懂,为什么要用这个条件跳转
最近在看《c++反汇编与逆向分析技术揭秘》中取模运算部分有些不理解的地方
and那里是计算reg和80000007按位相与的值,得到包含符号位在内的最后3位(加上符号位的话是原数据的4位,符号位和最后三位)
jns跳转是因为,如果reg和80000007按位相与的值的标记位如果是0,就跳转到LAB1这一步来执行。
or运算,只保留and运算值的符号位和最后三位。