3.5 算术运算指令

news2024/11/27 8:49:08

在这里插入图片描述

🎓 微机原理考点专栏(通篇免费)

欢迎来到我的微机原理专栏!我将帮助你在最短时间内掌握微机原理的核心内容,为你的考研或期末考试保驾护航。

为什么选择我的视频?

  • 全程考点讲解:每一节视频都紧扣考试要点,拒绝冗余,专注于最关键的知识点。
  • 系统且高效:我已经为你精心准备了系统的学习资料,让你不再迷茫。

🔗 点击这里观看我的视频讲解 🔗

我需要你的支持

我为这套视频投入了大量精力,希望它能对你的学习有所帮助。如果你觉得内容有用,请给我的视频点个赞、评论、并关注我,这将是我继续创作的最大动力!

🙏 感谢你的支持!祝你学有所成! 🙏


3.5 算术运算指令

1. 基本算术运算指令

ADD 指令

  • 格式: ADD 目的, 源
  • 作用: 对两个操作数进行加法运算,并将结果存入目的操作数中。
  • 示例: ADD AX, BX — 将 BX 中的值加到 AX 中。

SUB 指令

  • 格式: SUB 目的, 源
  • 作用: 对两个操作数进行减法运算,并将结果存入目的操作数中。
  • 示例: SUB AX, BX — 将 BX 中的值从 AX 中减去。

MOV AX, 5 ; 将 5 存入 AX 寄存器
MOV BX, 3 ; 将 3 存入 BX 寄存器
SUB AX, BX ; 将 BX 中的值 (3) 从 AX 中减去 (5 - 3),结果 2 存入 AX
ADC 指令

  • 格式: ADC 目的, 源
  • 作用: 带进位加法,将 CF 标志位的值参与加法运算。
  • 示例: ADC AX, BX — 执行 AX = AX + BX + CF。

SBB 指令

  • 格式: SBB 目的, 源
  • 作用: 带借位减法,将 CF 标志位的值参与减法运算。
  • 示例: SBB AX, BX — 执行 AX = AX - BX - CF。

INC 指令

  • 格式: INC 目的
  • 作用: 目的操作数加 1,不影响 CF 标志位。
  • 示例: INC AX — 将 AX 中的值加 1。

DEC 指令

  • 格式: DEC 目的
  • 作用: 目的操作数减 1,不影响 CF 标志位。
  • 示例: DEC AX — 将 AX 中的值减 1。

NEG 指令

  • 格式: NEG 目的
  • 作用: 求取操作数的补码,即取反加 1。
  • 示例: NEG AX — AX = -AX。

2. 比较指令

CMP 指令

  • 格式: CMP 目的, 源
  • 作用: 对两个操作数进行比较,但不返回结果,只是将运算过程和结果反映在标志位上。
  • 示例: CMP AX, BX — 比较 AX 和 BX,设置标志位。

标志位设置

CMP 指令会影响以下标志位:

  • ZF (Zero Flag): 如果 operand1operand2 相等,ZF 被设置(置1)。
  • SF (Sign Flag): 如果结果为负数(operand1 < operand2),SF 被设置。
  • OF (Overflow Flag): 如果发生有符号溢出,OF 被设置。
  • CF (Carry Flag): 如果 operand1 小于 operand2,CF 被设置。

image.png

3. 乘法和除法指令

MUL 指令

  • 格式: MUL 源
  • 作用: 执行无符号乘法,结果存放在 AX 或者 DX:AX 中。
  • 示例: MUL BX — 乘法 AX = AX * BX。

image.png
image.png
怎么用MUL指令来完成8位的乘法?

被乘数要放在寄存器AL中,

MOV AL,66 ;AL存放被乘数,66是16进制数
乘数要保存在8位寄存器或者内存中,

MOV BL,9 ;BL存放乘数,9是16进制数
然后,通过MUL指令,让乘数和被乘数相乘

MUL BL ;因为被乘数默认放在AL,所以只需要一个操作数来告诉CPU乘数是多少
最后,结果存放在AX中
IMUL 指令

  • 格式: IMUL 源
  • 作用: 执行有符号乘法,结果存放在 AX 或者 DX:AX 中。
  • 示例: IMUL BX — 乘法 AX = AX * BX。

image.png
image.png
image.png
image.png

4. 扩展与转换指令

CBW 指令

  • 作用: 将 AL 的内容从字节扩展为字,存放到 AX 中。
  • 示例: 如果 AL 的值是 FFH,则 CBW 后 AX 的值为 FFFFH。

CWD 指令

  • 作用: 将 AX 的内容扩展为双字,存放到 DX:AX 中。
  • 示例: 如果 AX 的值是 FFFFH,则 CWD 后 DX:AX 的值为 FFFFFFFFH。

5. 除法指令

DIV 指令

  • 格式: DIV 源
  • 作用: 执行无符号除法,商存放在 AL 或 AX 中,余数存放在 AH 或 DX 中。
  • 示例: DIV BX — 执行 AX = AX / BX,余数存入 DX。

IDIV 指令

  • 格式: IDIV 源
  • 作用: 执行有符号除法,商存放在 AL 或 AX 中,余数存放在 AH 或 DX 中。
  • 示例: IDIV BX — 执行 AX = AX / BX,余数存入 DX。

6. 非压缩 BCD 调整指令

AAA/AAS 指令

  • 作用: 在对非压缩 BCD 数字进行加法或减法后进行调整,使结果合法。
  • 示例: 在 ADD AL, BL 后,执行 AAA,对 AL 进行调整。

image.png
若AL的低4位大于9或AF=1,则自动将AL的内容加06H,AH内容加1并置AF=CF=1,将AL的高4位清零若AL的低4位小于或等于9,则仅将AL的高4位清零,并AF→CF
image.png
image.png

7. 压缩 BCD 调整指令

DAA/DAS 指令

  • 作用: 在对压缩 BCD 数字进行加法或减法后进行调整,使结果合法。
  • 示例: 在 ADD AL, BL 后,执行 DAA,对 AL 进行调整。

如果_AL的低4位大于9或AF=1,则AL的内容加06H,并_将_AF置1_;然后如果_AL的高4位大于9_或CF=1,则AL的内容加60H,且将CF置1。如果两个都不满足,则将AF,CF清零。
image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2100131.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

11、Django Admin启用对计算字段的过滤

重新定义admin.py中的Hero管理模型如下&#xff1a; admin.register(Hero) class HeroAdmin(admin.ModelAdmin):list_display ("name", "is_immortal", "category", "origin", "is_very_benevolent")list_filter ("…

(第四十天)配置完整的考试系统,完成前端和后端并优化,mysql后端,nginx前端,java连接

回顾 1 、使用 harbor 仓库 python --version yum -y update yum -y install python2-pip pip install --upgrade pip 20 .3 -i ....... pip install docker-compose -i ....... sh docker.sh 解压 harbor vim harbor.yml ./prepare ./installed 使用…

智慧储能柜构造揭秘:安科瑞2000ES解决方案打造智慧储能大脑

随着全球能源结构的转型和可再生能源的快速发展&#xff0c;储能技术成为调节能源供需、提高能源利用效率的关键。储能柜作为储能技术的核心组成部分&#xff0c;其构造和功能显得尤为重要。本文将为您详细解析储能柜的构造&#xff0c;并展示其如何成为高效能源管理的智慧核心…

ArcGIS Pro高级技巧:制作带地类编码文字的用地图例

欢迎关注同名微信公众号&#xff0c;更多文章推送&#xff1a; 01 需求分析 这个方法由群友【Erik】提供。 很有意思&#xff0c;看到最后一定会帮你打开思路。 直接上图比较&#xff0c;这是一般情况下简单的用地图例&#xff0c;只有色块&#xff1a; 下面这个是我们想要…

4、Django Admin对自定义的计算字段进行排序

通常&#xff0c;Django会为模型属性字段&#xff0c;自动添加排序功能。当你添加计算字段时&#xff0c;Django不知道如何执行order_by&#xff0c;因此它不会在该字段上添加排序功能。 如果要在计算字段上添加排序&#xff0c;则必须告诉Django需要排序的内容。你可以通过在…

有了这款AI代码神器Coursor,学习Rust不再是难题!

大家好&#xff0c;我是渔夫。 工欲善其事&#xff0c;必先利其器。AI 是未来十年生产力的核心工具&#xff0c;要让 AI 真正转化为生产力&#xff0c;而不仅仅是围观一时的热潮。 今天来聊聊最近又火爆AI圈的AI代码神器 Cursor&#xff0c;它其实是一款 VS Code 的一个分支&am…

在C#中使用Redis

NoSql NoSql概念 NoSQL&#xff0c;泛指非关系型的数据库。随着互联网web2.0网站的兴起&#xff0c; 历史中—中国的网站----马云--- 中国黄页&#xff0c;只能展示&#xff1b;用户只能看到 传统的关系数据库在处理web2.0网站&#xff08;可以看&#xff0c;也可以做到写&am…

华为云CCE集群创建loadBalancer

目录 一、目的 二、创建应用 三、创建服务 loadBalancer 四、域名解析 五、验证 一、目的 1、为CCE容器应用创建loadBalancer服务&#xff0c;并且绑定https协议的域名 2、公网访问域名: https://test.******.com 3、CCE创建用于公网域名访问的loadBalancer&#xff0c;不…

IAR9.X printf串口重定向方法,或提示Linker Error: “no definition for __write“的解决方案

一、问题现象&#xff1a; 1、Error[Li005]:no definition for"__write" [referenced from flush.o(dl7M_tlf.a)] 2、串口重映射代码没问题&#xff0c;但是串口工具接收不到数据 3、复现环境&#xff1a;IAR9.40.1 二、操作方法: 1、[工程项目]->[Options]…

【负载均衡式在线OJ】Compile_server 模块

文章目录 程序源码compile_server整体思路编译(compile.hpp)运行模块编译运行模块编译运行服务 程序源码 https://gitee.com/not-a-stupid-child/online-judge compile_server 整体思路 这个服务要对oj_server 发送过来的代码进行编译和运行&#xff0c;最后把结果返回给oj…

理想二极管

原理图 mos管选型 参考链接 很实用&#xff01;用MOS管制作一个理想中的二极管_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Xi421r7K8/?spm_id_from333.1007.tianma.2-1-4.click&vd_sourcee821a225c7ba4a7b85e5aa6d013ac92e 特此记录 anlog 2024年9月3日

JS设计模式之“单孑独立” - 单例模式

image.png 引言 在JavaScript开发中&#xff0c;单例模式是一种常见且实用的设计模式一。 单例模式的核心思想是&#xff1a;确保一个类只有一个实例对象&#xff0c;并且该对象可以在应用程序的任何地方被共享和访问。通过使用单例模式&#xff0c;我们可以简化代码、节省资…

SpringCloud开发实战(一):搭建SpringCloud框架

本系列文章主要是记录在工作中用到的微服务的各个组件&#xff0c;以及学习新的微服务组件~如有问题&#xff0c;欢迎大家批评指导。如果本文对你有帮助&#xff0c;还请点个收藏和关注。感谢支持&#xff0c;希望大家写的代码都没有BUG&#xff01;&#xff01; 前言 下面是我…

Linux下编译安装SuperLU

SuperLU用于求解大规模稀疏线性方程组&#xff0c;本文记录在远程Linux服务器下编译安装SuperLU的流程。 一、配置VS Code 2.1 安装VS Code Extensions 在本地打开VS Code, 安装以下扩展插件&#xff0c; Task Explorer Output Colorizer Git Extension Pack Remote Develop…

Stirling-PDF:基于Web的开源PDF处理工具

PDF文件进行各种各样的操作&#xff0c;比如合并、拆分、加密、解密、旋转、压缩等等&#xff0c;功能超全&#xff0c;而且开源免费&#xff0c;简直是神器&#xff01; GitHub - Stirling-Tools/Stirling-PDF: #1 Locally hosted web application that allows you to perfor…

【JAVA开源】基于Vue和SpringBoot的历史学习网站

本文项目编号 T 004 &#xff0c;文末自助获取源码 \color{red}{T004&#xff0c;文末自助获取源码} T004&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

IDEA主题的设置

目录 一、更换皮肤&#xff1a; 二、设置背景图片&#xff1a; 1.点击 File -> Settings ; 2.选择 Appearance & Behavior -> Appearance ; 一、更换皮肤&#xff1a; 1. Theme: 点击下拉框打开&#xff1b; 白色皮肤&#xff1a; inteIIiJ light Windows 10 Lig…

VirtualLab Fusion Installer-7.6.1.18 安装包 永不过期 永久使用 下载

下载地址(资源制作整理不易&#xff0c;下载使用需付费&#xff0c;不能接受请勿浪费时间下载) 链接&#xff1a;https://pan.baidu.com/s/14yJGZAosK_ftJhHD0D4VHA?pwd00zn 提取码&#xff1a;00zn

Lua:条件断点

如果有很多方式都要经过这个函数&#xff0c;但是你只需要满足其中例如参数等于Test的这一种&#xff0c;可以在断点处右键点击编辑断点打上条件断点&#xff0c;只有参数EventName等于Test的才会断上。

如何打造高校实验室预约系统?Java SpringBoot助力高效管理,MySQL存储数据,Vue前端展现,四步实现学生轻松预约!

&#x1f34a;作者&#xff1a;计算机毕设匠心工作室 &#x1f34a;简介&#xff1a;毕业后就一直专业从事计算机软件程序开发&#xff0c;至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长&#xff1a;按照需求定制化开发项目…