|     
 帖子3852 积分13044 威望16780  金钱36761  在线时间1139 小时 
          
 | 
| 
 今天来学习下NOT求反指令和XOR异或指令。这两个指令以后用的也很广泛,而且很多人都对这
 
 个不是很了解。
 
 NOT指令就是取反,那么16进制取反我在上上节课在讲解求数值的补码的时候已经说过了。。
 
 
 16进制数值取反是用15-相应16进制数值相应位。举个例子
 
 00403020H  取反  = FFBFCFDFh
 15-0=F
 15-0=F
 15-4=B
 15-0=F
 15-3=C
 15-0=F
 15-2=D
 15-0=F
 
 就是用15减去相应的16进制数值的相应位,大家是否想起来在上上节课时候我讲解的取补码的那节课程,取
 
 补码是取反后+1。
 
 那么NOT 指令也就是相应的取反。
 
 假如此时eax = 00403020h
 执行NOT eax后
 eax = FFBFCFDFh
 
 一般的格式 NOT 寄存器/内存单元
 
 很简单吧。
 
 
 那么我们来看下XOR 异或语句,在上节免杀课程上,讲解的“巧用算法加密特征码”,就是简单
 
 的利用了异或算法。。
 
 XOR 就是相同为0, 相异为 1。
 
 举例
 al = 00001010B
 执行
 xor al, 11111111B后
 
 al = 11110101B
 那么此时我们在将al的结果在同11111111B进行一次异或就可以取得之前的值。
 
 al = 11110101B
 
 xor al,11111111B
 执行后
 
 al   = 00001010B
 
 因为异或指令的这种特性,所以使有时候我们可以用它来加密一些信息。
 
 
 今天因为事情比较多,也没什么准备,那么接下来留两个小作业。
 
 小作业:
 1. 假如此时eax = 00201011h
 执行 NOT eax指令后,求eax = ?
 
 2.假如此时bl = 00101011B
 执行xor bl, 00000000b
 求bl = ?
 | 
 |