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

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

在这里插入图片描述

一、逻辑运算指令

  • 逻辑与指令 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

在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BkbK-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值