首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【微机原理】程序设计题基础知识讲解——3、算术与逻辑运算

【微机原理】程序设计题基础知识讲解——3、算术与逻辑运算

作者头像
命运之光
发布2025-06-13 15:52:09
发布2025-06-13 15:52:09
2580
举报

了解每条指令的基本功能、使用场景和特点。 知道算术运算指令(如 ADD、SUB)如何改变寄存器内容,以及它们对标志位的影响。 了解逻辑指令(如 XOR、NOT)在数据清零和位操作中的用途。 知道如何使用 DIV 和 ADC 进行多字节运算 知道如何利用 CMP 指令为条件转移提供依据。

算术与逻辑运算

1. ADD 指令
  • 作用:执行加法运算,将源操作数加到目的操作数上,并将结果存储在目的操作数中。
  • 特点
    • 会影响标志寄存器(如进位标志 CF、零标志 ZF 等)。
    • 常用于累加求和、地址计算等场合。
  • 示例
代码语言:javascript
复制
MOV AL, 5
ADD AL, 3    ; AL = 8,进位标志根据结果设置CF=0
2. SUB 指令
  • 作用:执行减法运算,从目的操作数中减去源操作数,并将结果存回目的操作数。
  • 特点
    • 同样会影响标志寄存器(包括进位CF和零标志ZF)。
  • 示例
代码语言:javascript
复制
MOV AL, 10
SUB AL, 4    ; AL = 6
3. XOR 指令
  • 作用:按位异或运算。常用于清零寄存器(例如:XOR AX, AX 将 AX 置零)。
  • 特点
    • 异或操作满足“相同为 0,不同为 1”的规律。
  • 示例
代码语言:javascript
复制
XOR AX, AX   ; AX = 0   
4. DIV 指令
  • 作用:用于无符号除法。将累加器中的值除以指定操作数,商和余数分别存储在特定寄存器中(通常商在 AL 或 AX,余数在 AH 或 DX)。
  • 特点
    • 在 8 位除法中:AX 存放被除数,除数在寄存器中,商存 AL,余数存 AH。
    • 在 16 位除法中:DX:AX 存放被除数,商存 AX,余数存 DX。
  • 示例
代码语言:javascript
复制
MOV AL, 20
MOV BL, 4
DIV BL      ; 20/4, 商存 AL=5,余数存 AH=0
5. ADC 指令 (Add with Carry)
  • 作用:执行带进位的加法,将两个操作数相加,并加上进位标志 CF 的值。
  • 用途
    • 主要用于多字节(或多精度)加法运算,例如处理大于寄存器宽度的整数相加时,将前一字节的进位纳入计算。
  • 示例
代码语言:javascript
复制
; 假设之前的加法运算后,进位标志 CF = 1
MOV AL, 0xFF   
ADC AL, 1   ; AL = 0xFF + 1 + CF(1) = 0x101, AL 只保存低 8 位(01H)
6. CMP 指令
  • 作用:比较两个操作数(其实质上是做一次减法运算,但不保存结果),仅影响标志位(例如零标志 ZF、符号标志 SF 等)。
  • 用途
    • 为后续的条件跳转提供依据。
    • 常见用法:CMP 寄存器, 值,根据比较结果进行跳转。
  • 示例
代码语言:javascript
复制
MOV AL, 12
CMP AL, 10   ; 比较 AL 与 10,ZF 置 1,表示相等
7. NOT 指令
  • 作用:按位取反运算,对操作数中的每一位执行逻辑取反(0变1,1变0)。
  • 用途
    • 常用于求补码或实现特定逻辑功能。
  • 示例
代码语言:javascript
复制
MOV AL, 0F0h   //1111 0000    0000 1111       0FH
NOT AL       ; AL = 0F0h 取反后为 00Fh 的按位补码
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-06-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 算术与逻辑运算
    • 1. ADD 指令
    • 2. SUB 指令
    • 3. XOR 指令
    • 4. DIV 指令
    • 5. ADC 指令 (Add with Carry)
    • 6. CMP 指令
    • 7. NOT 指令
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档