逆向随笔 - 位运算
来源:互联网 发布:手机跑分软件 编辑:程序博客网 时间:2024/05/23 00:19
一、算术移位运算
算术左移 (shift arithmetic left)
SAL reg/mem, CL/Imm
每位左移, 低位补 0, 高位进 CF
例如: 0100 0101 CF=0 算术左移3位
1 -> 1000 1010 CF = 0
2 -> 0001 0100 CF = 1
3 -> 0010 1000 CF = 0
算术右移 (shift arithmetic right)
SAR reg/mem, CL/Imm
每位右移, 高位补符号位, 低位进 CF
例如: 1100 0101 CF=0 算术右移3位
1 -> 1110 0010 CF=1
2 -> 1111 0001 CF=0
3 -> 1111 1000 CF=1
二、逻辑移位运算
逻辑左移(shift logical Left)
SHL reg/mem, CL/Imm
每位左移, 低位补 0, 高位进 CF
例如: 0100 0101 CF=0 算术左移3位
1 -> 1000 1010 CF = 0
2 -> 0001 0100 CF = 1
3 -> 0010 1000 CF = 0
逻辑右移 (shift logical right)
SHR reg/mem, CL/Imm
每位右移, 高位补0, 低位进 CF
例如: 1100 0101 CF=0 逻辑右移3位
1 -> 0110 0010 CF=1
2 -> 0011 0001 CF=0
3 -> 0001 1000 CF=1
三、循环移位运算
循环左移(rotate left)
ROL reg/mem, CL/Imm
每位左移, 高位填充到低位, 高位进 CF
例如: 0100 0101 CF=0 循环左移3位
1 -> 1000 1010 CF = 0
2 -> 0001 0101 CF = 1
3 -> 0010 1010 CF = 0
循环右移 (rotate right)
ROR reg/mem, CL/Imm
每位右移, 低位填充到高位, 低位进 CF
例如: 1100 0101 CF=0 循环右移3位
1 -> 1110 0010 CF=1
2 -> 0111 0001 CF=0
3 -> 1011 1000 CF=1
四、带进位循环移位运算
带进位循环左移(rotate through carry left)
RCL reg/mem, CL/Imm
每位左移, CF填充到低位, 高位进 CF
例如: 0100 0101 CF=0 带进位循环左移3位
1 -> 1000 1010 CF = 0
2 -> 0001 0100 CF = 1
3 -> 0010 1001 CF = 0
带进位循环右移 (rotate through carry right)
RCR reg/mem, CL/Imm
每位右移, CF填充到高位, 低位进 CF
例如: 1100 0101 CF=0 带进位循环右移3位
1 -> 0110 0010 CF=1
2 -> 1011 0001 CF=0
3 -> 0101 1000 CF=1
- 逆向随笔 - 位运算
- 随笔:位运算举例
- 关于位运算的随笔
- (随笔)位运算和移位运算D
- hdu3220 Alice’s Cube--逆向BFS & 打表 & 位运算
- 随笔二十四:逆向工程
- 170403 汇编-位运算和地址表示,逆向-winapi和系统相关基础
- 除法运算逆向分析
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- An antiarithmetic permutation UVA, 11129
- keytool的用法
- 去除activity上的标题
- 数据结构与算法习题汇总(3)
- QTAddMin安装失败
- 逆向随笔 - 位运算
- myeclipse通过数据表生成jpa或hibernate实体
- C++用复合梯形法求积分
- PAT (Basic Level) Practise (中文)1021. 个位数统计 (15)
- MIME类型大全
- 构造函数
- hibernate和mybatis的比较
- Intel x86_64 Architecture Background(1)
- 走近meta