我是靠谱客的博主 搞怪月饼,最近开发中收集的这篇文章主要介绍【汇编语言】通用数据处理指令——位操作类指令通用数据处理指令——位操作类指令,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

在这里插入图片描述

文章目录

  • 通用数据处理指令——位操作类指令
    • 一、逻辑运算指令
      • 1.逻辑与指令AND
      • 2.逻辑或指令OR
      • 3.逻辑非指令NOT
      • 4.逻辑异或指令XOR
      • 5.逻辑运算的应用
    • 二、移位指令
      • 1.左移位指令SHL / SAL
      • 2.逻辑右移指令SHR
      • 3.算术右移指令SAR
      • 4.不带进位循环左移指令ROL
      • 5.不带进位循环右移指令ROR
      • 6.带进位循环左移指令RCL
      • 7.带进位循环右移指令RCR

一、逻辑运算指令

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

在这里插入图片描述

最后

以上就是搞怪月饼为你收集整理的【汇编语言】通用数据处理指令——位操作类指令通用数据处理指令——位操作类指令的全部内容,希望文章能够帮你解决【汇编语言】通用数据处理指令——位操作类指令通用数据处理指令——位操作类指令所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部