汇编语言通用数据处理指令——位操作类指令

Posted BkbK-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编语言通用数据处理指令——位操作类指令相关的知识,希望对你有一定的参考价值。

通用数据处理指令——位操作类指令

在这里插入图片描述

一、逻辑运算指令

  • 逻辑与指令 AND
  • 逻辑或指令 OR
  • 逻辑非指令 NOT
  • 逻辑异或指令 XOR
  • 测试指令 TEST

除NOT指令不影响标志外,其他逻辑指令
►使OF=CF=0
►根据结果按定义影响ZF、SF和PF

1.逻辑与指令AND

  • 逻辑与(逻辑乘)运算规则
    ►两位都是逻辑1,则结果是1;否则,结果是0
  • 逻辑与指令AND
    ►按位进行逻辑与,结果返回目的操作数
AND reg,imm/reg/mem

;reg←reg & imm/reg/mem

AND mem,imm/reg

;mem←mem & imm/reg

2.逻辑或指令OR

  • 逻辑或(逻辑加)运算规则
    ►两位都是逻辑0,则结果是0;否则,结果是1
  • 逻辑或指令OR
    ►按位进行逻辑或,结果返回目的操作数
OR reg,imm/reg/mem

;reg←reg | imm/reg/mem

OR mem,imm/reg

;mem←mem | imm/reg

3.逻辑非指令NOT

  • 逻辑非(逻辑反)运算规则:
    ►原来为0的位变成1,原来为1的位变成0
  • 逻辑非指令NOT:
    ►按位进行逻辑非,结果返回操作数
NOT reg/mem

;reg/mem←~reg/mem

NOT指令不影响状态标志位

4.逻辑异或指令XOR

  • 逻辑异或(逻辑半加)运算规则:
    ►两位不同(相异),则结果是1;否则,结果是0
  • 逻辑异或指令XOR:
    ►按位进行逻辑异或,结果返回目的操作数
XOR reg,imm/reg/mem

;reg←reg  imm/reg/mem

XOR mem,imm/reg

;mem←mem  imm/reg

5.逻辑运算的应用

  • 逻辑运算的屏蔽作用

    • AND复位某些位(同0与),不影响其他(同1与)

      and bl,11110110b ;BL中D0和D3清0,其余位不变
      
    • OR置位某些位(同1或),不影响其他(同0或)

      or bl,00001001b ;BL中D0和D3置1,其余位不变
      
    • XOR求反某些位(同1异或),不影响其他(同0异或)

      xor bl,00001001b ;BL中D0和D3求反,其余位不变
      
  • 逻辑运算用于大小写转换

    大写=小写 AND DFH
    小写=大写 OR 20H

二、移位指令

  • 逻辑左移指令 SHL
  • 逻辑右移指令 SHR
  • 算术左移指令 SAL
  • 算术右移指令 SAR
  • 不带进位循环左移指令 ROL
  • 不带进位循环右移指令 ROR
  • 带进位循环左移指令 RCL
  • 带进位循环右移指令 RCR

1.左移位指令SHL / SAL

各位同时左移,最低位补0,最高位进入CF

SHL reg/mem,i8/CL
SAL reg/mem,i8/CL

在这里插入图片描述

2.逻辑右移指令SHR

各位同时右移,最高位补0,最低位进入CF

SHR reg/mem,i8/CL

在这里插入图片描述

3.算术右移指令SAR

各位同时右移,最高位不变,最低位进入CF

SAR reg/mem,i8/CL

在这里插入图片描述

4.不带进位循环左移指令ROL

各位同时左移,最高位循环进入最低位和CF

ROL reg/mem,i8/CL

在这里插入图片描述

5.不带进位循环右移指令ROR

各位同时右移,最低位进入最高位和CF

ROR reg/mem,i8/CL

在这里插入图片描述

6.带进位循环左移指令RCL

CF作为附加位,各位同时左移,CF进入最低位

RCL reg/mem,i8/CL

在这里插入图片描述

7.带进位循环右移指令RCR

CF作为附加位,各位同时右移,最低位进入CF

RCR reg/mem,i8/CL

在这里插入图片描述

以上是关于汇编语言通用数据处理指令——位操作类指令的主要内容,如果未能解决你的问题,请参考以下文章

汇编语言通用数据处理指令——数据传送类指令

汇编语言通用数据处理指令——数据传送类指令

数据传送类指令(微机原理笔记)

16位汇编第五讲各种指令详解第一讲

汇编语言通用数据处理指令——算术运算类指令

汇编语言各种指令的解释与用法