这些指令用于执行涉及数据位的操作,即逻辑,移位等操作。可以说这些指令是逻辑指令。在8086中,目标寄存器可以是累加器,也可以不是。
让我们看看8086微处理器的逻辑指令。这里的D,S和C分别是目标,源和计数。D,S和C可以是寄存器,数据或存储器地址。
操作码 | 操作数 | 描述 |
---|---|---|
和 | D,S | 用于将一个字节/字中的每个位与另一个字节/字中的对应位相加。 |
要么 | D,S | 用于将一个字节/字中的每个位与另一个字节/字中的对应位相乘。 |
不 | d | 用于反转字节或字的每一位。 |
异或 | D,S | 用于对一个字节/字中的每个位与另一个字节/字中的对应位执行异或运算。 |
测试 | D,S | 用于添加操作数以更新标志,而不会影响操作数。 |
SHR | D,C | 用于将一个字节/字的位向右移,并在MSB中置零。 |
SHL / SAL | D,C | 用于将一个字节/字的位向左移,并在LSB中置零。 |
ROR | D,C | 用于将字节/字的位向右旋转,即LSB到MSB和进位标志[CF]。 |
罗尔 | D,C | 用于将字节/字的位向左旋转,即MSB到LSB和进位标志[CF]。 |
RCR | D,C | 用于将字节/字的位向右旋转,即LSB到CF和CF到MSB。 |
RCL | D,C | 用于将字节/字的位向左旋转,即MSB到CF和CF到LSB。 |