文章目录
- 一、逻辑运算指令
- 1、取反运算指令
- 2、与运算指令
- 3、或运算指令
- 4、异或运算
- 二、移位指令
- 1、开环移位指令
- 算术左移:SHL、SAL
- 算术右移:SAR
- 逻辑右移:SHR
- 2、闭环移位指令
- 含进位的循环左移:RCL
- 含进位的循环右移:RCR
- 不含进位的循环左移:ROL
- 不含进位的循环右移:ROL
- 3、例子
一、逻辑运算指令
1、取反运算指令
格式:NOT 目标操作数
功能:将目标操作数按位取反,结果送到目标操作数中。
2、与运算指令
格式:AND 目标操作数,源操作数
功能:置零操作用AND,置0位置用0,置1位置用1。
3、或运算指令
格式: OR 目标操作数,源操作数
功能:OR指令通常用于将某些位 置1
4、异或运算
格式:XOR 目标操作数,源操作数
功能:XOR指令通常用于将某些位置取反,某些位保持不变(用1取反,用0取保持不变)
二、移位指令
所有移位指令的格式为:指令名 操作数,移位次数
1、开环移位指令
算术左移:SHL、SAL
所有位向左移,最高为存入进位位,最低位置零。
算术右移:SAR
所有位向右移,最低位存入进位位,最高位数值保持不变。
逻辑右移:SHR
所有位向右移,最低位存入进位位,最高位置零。
看下图是对上述三种移位指令的图解:
2、闭环移位指令
含进位的循环左移:RCL
所有位向左移,最高位进入CF,并且转移到最低位赋值。
含进位的循环右移:RCR
所有位右移,最低位进入CF,并且赋值给最高位。
不含进位的循环左移:ROL
所有位向左移,最高位进入CF,并且最高位赋值给最低位,CF保持不变。
不含进位的循环右移:ROL
所有位右移,最低位进入CF,并且最低位赋值给最高位,CF保持不变。
看下图是对上述三种移位指令的图解: