汇编 逻辑运算指令

本文详细介绍了计算机指令中的逻辑运算指令,如AND、OR、NOT、XOR和TEST,以及移位指令(包括算数和逻辑、循环与非循环),强调了标志位的作用和不同操作对进位标志位CF的影响。
摘要由CSDN通过智能技术生成

逻辑运算指令

  1. 与指令 格式 : AND 目的操作数 , 源操作数

  2. 或指令 格式 : OR 目的操作数 ,源操作数

    • 用于 组合 某个字 或者 将某位 置一 操作
    • 组合 操作:BCD 码 转换成 ASCII 码 :
    • MOV AX ,03H
    • OR AX ,30 H
    • 最后 AX 中的值为 33H 完成了 30 和 03 的组合
  3. 非指令 格式 : NOT 目的操作数

    • 是按位取反 ,不是去反码 ,对于符号位也要取反
    • 不影响标志位
  4. 异或指令 格式 : XOR 目的操作数 ,源操作数

    • 相同为零 ,不同为 一
    • 按位取反 :与 1 相 异或 操作,按位取反
    • 寄存器 清零:与 自身 相异或 ,清零操作
  5. 测试指令 格式 : TEST 目的操作数 ,源操作数

    • 不送回结果,只根据结果置标志位
    • 主要用来检测目的操作数的某些位是 0 / 1 根据测试结果,决定转向
  6. 注意

    1. 除了非指令 全部指令都使 CF(进位标志位) ,OF(溢出标志位) 为 0
    2. AND 指令可以是某一位请 0
    3. OR 指令可以使某一位置 1
    4. NOT 指令不影响标志位 ,
    5. XOR 指令可以使某些位不变,某些位取反
    6. TEST 指令用于测试某一位是否为0 还是 1(源操作数与目的操作数 相与 操作但不会返回结果,相与操作数后标志寄存器就会产生变化)

例题

  • 写出可以使 AX 清零的指令
    1. MOV AX ,0 ;不影响 CF 位
    2. SUB AX ,AX ;CF = 0
    3. XOR AX ,AX ;CF = 0
    4. AND AX ,0 ;CF = 0
  1. 移位指令
  • 格式 :指令 目的操作数 , 源操作数
  • 移位次数为 1 ,直接写在指令中,若大于一次,则由CL 寄存器间接给出
  • 左移操作 :数值 * 2
  • 右移操作 :数值 / 2
  1. 非循环移位指令
    • 算数左移(与逻辑左移一样) SAL 最高位进入 CF 标志位,最低位补 0
    • 算术右移 SAR 最低位进入 CF 标志位 ,符号位(最高位)不变
    • 逻辑左移(与算数左移一样) SHL 最高位进入 CF 标志位,最低位补 0
    • 逻辑右移 SHR 最低位进入 CF 标志位 ,最高位补 0
  2. 循环移位指令
    • 循环左移 ROL 最高位进入 CF 标志位,在转回最低位

    • 在这里插入图片描述

    • 循环右移 ROR 最低位进入 CF 标志位,再转回到 最高位

    • 带进位的循环左移 RCL 将 CF 标志位,再转回到最低位

    • !在这里插入图片描述

    • 带进位的循环右移 RCR 将最低位给 CF 标志位

  • 记忆
    • 左 / 右 :L / R
    • 逻辑运算 / 算数运算 : SH / SA
    • 循环 使用到 CF 运算 中间为:C
    • 循环 未使用到 CF 运算 中间为 O
    • 所有的 情况
    • SHL / SHR : 逻辑左移 / 右移
    • SAL / SAR :算数左移 / 右移
    • ROL / ROR :不带进位循环左移 / 右移
      / 右移
    • SAL / SAR :算数左移 / 右移
    • ROL / ROR :不带进位循环左移 / 右移
    • RCL / RCR :带进位的循环左移 / 右移
  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值