零基础逆向工程15_C语言09_位运算

1.汇编中的移位指令

算数移位指令

指令格式:SAL/SAR Reg/Mem, CL/Imm

SAL(Shift Arithmetic Left):算数左移
SAR(Shift Arithmetic Right):算数右移

逻辑移位指令

指令格式:SHL/SHR Reg/Mem, CL/Imm

SHL(Shift Left):逻辑左移
SHR(Shift Right):逻辑右移

循环移位指令

指令格式:ROL r/m, i8 ROR r/m, CL

ROL(Rotate Left):循环左移
ROR(Rotate Right):循环右移

带进位的循环移位指令

指令格式:RCL r/m, i8 RCR r/m, CL

RCL(Rotate through Carry Left):带进位循环左移
RCR(Rotate through Carry Right):带进位循环右移

总结参考:百度文库

2.C语言中的移位指令

1.与运算 &
2.或运算 |
3.非运算 ~
4.异或运算 ^
5.移位运算 << >>

3.自我检测

(使用位移操作指令,比如:& | ~ ^ << >>等)
1.定义一个unsiged char 类型,通过程序为第3、5、7位赋值,赋值时不能影响到其他位原来的值。
2.判断某个位的值是否为1.
3.读取第7,6,5位的值,以十进制显示(unsigned)。
4.用十六进制文本编辑器分别打开一个.exe .dll .sys .txt .doc .jpg .pdf等将前四个字节写下来
5.讲一个在十六进制编辑器(WinHex)中打开的.exe文件,拖拽到最后,观察文件中的大小和硬盘上的大小

    原文作者:flatcc
    原文地址: http://www.cnblogs.com/flatcc/p/7500171.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞