博客
关于我
汇编语言(六):位操作类指令(AND, OR, XOR, NOT, TEST, 移位指令)
阅读量:375 次
发布时间:2019-03-04

本文共 1349 字,大约阅读时间需要 4 分钟。

汇编语言课程笔记:位操作类指令

目录

  • 逻辑运算指令
  • 移位指令
  • 循环移位指令
  • 1. 逻辑运算指令

    1.1 逻辑与指令 (AND)

    • 指令格式:AND reg,imm/reg/mem
    • 功能:设置标志位CF和OF为0,根据结果设置SF、ZF和PF状态。
    • 用途:用于将某位或某些位置为0,不影响其他位。

    1.2 逻辑或指令 (OR)

    • 指令格式:OR reg,imm/reg/mem
    • 功能:设置标志位CF和OF为0,根据结果设置SF、ZF和PF状态。
    • 用途:用于将某位或某些位置为1,不影响其他位。

    1.3 逻辑异或指令 (XOR)

    • 指令格式:XOR reg,imm/reg/mem
    • 功能:设置标志位CF和OF为0,根据结果设置SF、ZF和PF状态。
    • 用途:用于对某些位取反,不影响其他位。

    1.4 逻辑非指令 (NOT)

    • 指令格式:NOT reg/mem
    • 功能:不影响标志位。
    • 用途:用于对单个寄存器或内存位置取反。

    1.5 测试指令 (TEST)

    • 指令格式:TEST reg,imm/reg/mem
    • 功能:执行逻辑与运算,但不改变操作数。
    • 用途:用于检测某些条件是否满足,避免改变原操作数。

    2. 移位指令

    移位指令用于对寄存器或内存位置的数值进行位操作,分为逻辑移位和算术移位。

    2.1 逻辑移位指令

    • 左移:SHL reg/mem,1/CL 或 SHL reg/mem,CL
    • 右移:SHR reg/mem,1/CL 或 SHR reg/mem,CL
    • 特点:适用于无符号数移位处理。
      • 左移:最高位进入CF,最低位补0。
      • 右移:最低位进入CF,最高位补0。

    2.2 算术移位指令

    • 左移:SAL reg/mem,1/CL 或 SAL reg/mem,CL
    • 右移:SAR reg/mem,1/CL 或 SAR reg/mem,CL
    • 特点:适用于有符号数移位处理。
      • 左移:最高位进入CF,最低位补0。
      • 右移:最低位进入CF,符号位不变。

    2.3 移位指令对标志的影响

    • CF:根据移入的位设置。
    • SF、ZF、PF:根据移位后的结果设置。
    • AF:未定义。
    • OF:当移位前最高位与移位后最高位不同时为1,否则为0。

    3. 循环移位指令

    循环移位指令用于将操作数的位进行循环移位操作,分为带进位和不带进位两种类型。

    3.1 不带进位循环移位

    • 左移:ROL reg/mem,1/CL
    • 右移:ROR reg/mem,1/CL
    • 特点:被移位的位会进入CF。

    3.2 带进位循环移位

    • 左移:RCL reg/mem,1/CL
    • 右移:RCR reg/mem,1/CL
    • 特点:移位时会考虑CF的值,类似于加法中的进位处理。

    3.3 循环移位对标志的影响

    • CF:根据指令功能设置。
    • SF、ZF、PF、AF:不受影响。
    • OF:当移位前最高位与移位后最高位不同时为1,否则为0。

    4. 实际应用示例

    4.1 移位操作示例

    • shl ax,1:将AX左移一位,CF为1。
    • shr al,1:将AL右移一位,CF为0。

    4.2 循环移位示例

    • rol al,1:将AL左循环移位一位。
    • ror bl,1:将BL右循环移位一位。

    4.3 位传送示例

    • ror bl,1:将BL的最低位送到AL的最低位。
    • ror al,1:将AL的最低位送到BL的最低位。

    转载地址:http://mtih.baihongyu.com/

    你可能感兴趣的文章
    python办公自动化基础输出文件和文件夹
    查看>>
    python办公自动化基础搜索文件
    查看>>
    python知识:@classmethod和@staticmethod的异同
    查看>>
    python前端之css
    查看>>
    Python制作进度条,原来有这么多方法
    查看>>
    Python制作简单的学生成绩管理系统
    查看>>
    python制作甘特图的基本知识(附Demo)
    查看>>
    python制作一个简单的服务器,【Python】 做一个简单的 http 服务器
    查看>>
    Python到底能做什么?它的优点在哪?
    查看>>
    python利用pytorch库导出图像分割算子
    查看>>
    python利用pyshark监听网卡来抓包其中pyshark中摸索的一些可用参数
    查看>>
    python利用excel分析过杀漏失
    查看>>
    python判断汉字数目
    查看>>
    python判断文件是空的,如果是空的,就删除
    查看>>
    python判断密码是否正确_python密码判断是否符合要求的方法
    查看>>
    python判断字符串包含中文_Python 判断字符串是否包含中文
    查看>>
    python删除第一行_Python 乱码指北:一行删掉根目录
    查看>>
    Python删除列表元素的三种方法
    查看>>
    python初步学习-python数据类型-集合(set)
    查看>>
    python列表生成字典_Python中将字典转换为列表的方法
    查看>>