【微机原理】汇编指令之算数运算类指令

一、加法指令

1.ADD 加法指令

格式:ADD 目的操作数,源操作数

功能:目的操作数 + 源操作数 —>目的操作数

例如:ADD AL,BL;  AL + BL —> AL 寄存器中

2.ADC 带进位的加法指令

格式:ADC 目的操作数,源操作数

功能:目的操作数 + 源操作数 + CF(进位标志位) —>目的操作数

例如:MOV AL,0;     0 —> AH

      MOV AL,92H;  92H—>AL

      ADD AL,86H;  92H + 86H = 18H—>AL,CF = 1

      ADC AH, 0;    AH + 0 + CF = 0 + 0 + 1 —> AH,即01H—>AH

3.INC 1 指令

格式:INC 操作数

功能:操作数加1,结果送操作数。操作数可以是任意一个8位或16位的通用寄存器或存储单元不能是立即数

例如:

    INC DI;  DI + 1 —> DI

    INC CX;       CX + 1 —> CX

说明:指令INC对标志位CF不影响外,其他加法指令对标志位的影响定义如下:

CF

两个数相加,最高有效位有进位时,即字节操作超过无符号数的范围0~255,字运算超出无符号的范围0~65535时,CF = 1,否则CF = 0.故两个无符号数相加时,可用CF的值来判断是否超出了无符号数的表示范围,如果CF =1表示此无符号数加法运算结果发生了溢出

PF

运算结果以二进制数表示时,若“1”的个数为偶数时PF=1,否则为0

AF

运算中D3向D4有进位时AF = 1,否则为0

ZF

运算结果为0时,ZF=1,否则为0

SF

运算结果最高位为1时,SF=1,否则为0

OF

当两个操作数的符号相同,而相加结果的符号与操作数的符号相反时,OF=1,否则OF=0。该标志位来判断符号数相加时的结果的溢出

二、减法指令

1.SUB减法指令

格式:SUB 目的操作数,源操作数

功能:目的操作数 - 源操作数 —> 目的操作数

例如:SUB AL,BL;   AL - BL —> AL

2.SBB带借位的减法指令

格式:SBB目的操作数,源操作数

功能:目的操作数 - 源操作数 - CF —> 目的操作数

3.DEC1指令

功能:该指令将操作数的内容减1后作为现在的操作数,不影响CF标志位

例如:DEC DI;       DI - 1—>DI

      DEC CX;       CX - 1—>CX

注意减法指令对标志位的影响与加法指令相似,若被减数小于减数,则不够减,要产生借位,即CF = 1,否则CF = 0。 若两个符号相反的数进行减法运算,即同号数相加,如果OF = 1,表示有溢出,否则OF = 0。其他标志位定义不变

4.求补指令(影响标志位)

格式:NEG 操作数

功能:0 - 操作数的内容后结果回送操作数

例如:MOV DI,05H

      DEG DI ; 0 - DI = 0 - 05H = OFBH —> DI

对80H或8000H取补时,操作数没有变化,但OF=1(0 - 80H = 80H,负号变正号就是溢出)

对CF影响比较特殊,只要操作数不是0,总是使CF=1

5.CMP比较指令

格式:CMP 目的操作数,源操作数

功能:该指令与减法指令相似,执行时目的操作数与源操作数相减,但不把减得的结果存入目的操作数,只根据结果设置标志位(AFCFOFPFSFZF。即源操作数与目的操作数均保持原值不变。

目录

一、加法指令

1.ADD 加法指令

2.ADC 带进位的加法指令

3.INC加 1 指令

二、减法指令

1.SUB减法指令

2.SBB带借位的减法指令

3.DEC减1指令

4.求补指令(影响标志位)

5.CMP比较指令

三、符号扩展指令(不影响标志位)

四、乘法指令(运算结果只影响CF、OF)

1.MUL  无符号数乘法

2.IMUL  带符号数乘法指令

五、除法指令(运算结果只影响CF、OF)

1.DIV 无符号数除法指令

2.IDIV 带符号数除法指令


三、符号扩展指令(不影响标志位)

,0操作数

CBW  ;  字节扩展成字,AL中的符号位扩展到AH

CWD  ;  字扩展成双字,AX中的符号位扩展到DX

 

如果AL的最高位1(负数),则CBW指令扩展时使AH = 0FFH,如果AL的最高位为0(正数),则CBW指令扩展时使AH = 00H

如果AX的最高位为1(负数),则CWD指令扩展时DX = 0FFFFH,如果AX的最高为0(正数),则CWD指令扩展时使DX=0000H

四、乘法指令(运算结果只影响CF、OF

1.MUL  无符号数乘法

格式:MUL SRC

操作:操作数为字节时,AX <— AL * SRC

      当操作数为字时,DX,AX <— AX * SRC

2.IMUL  带符号数乘法指令

格式:IMUL SRC

  在乘法指令中,目的操作数必须是累加器(AX,不必在指令中写出。两个相乘的数必须长度相同目的操作数长度是乘数的两倍,显然不会出现溢出。SRC不能是立即数,和加减法指令不同的是,作乘法时需要考虑是无符号数还是带符号数,而选择不同的指令。

运算结果只影响CF、OF

对于MUL,若字节型数据相乘AH=0,或字数据相乘之积DX=0,则CF=OF=0,否则CF=OF=1

对于IMUL,若字节相乘,AH1还是0取决于AL的最高位。如果为1,则CF=OF=1,否则为0.若字相乘,DX1还是0取决于AX的最高位。如果为1,则CF=OF=1,否则为0

五、除法指令(运算结果只影响CF、OF

要求被除数是除数的双倍字长

操作数为8位:AX / 操作数 = AL存商,AH存余数  

操作数为16位:(DX、AX) / 操作数 = AX存商,DX存余数

余数放在目的操作数的高端放在目的操作数的低端

余数的符号与被除数相同

SRC不能是立即数

除数为0或商超过规定的范围时,将产生0号中断(OF=1)

带符号除法运算中,被除数位数不够是,则需将被除数扩展到所需的位数

1.DIV 无符号数除法指令

格式:DIV SRC

2.IDIV 带符号数除法指令

格式:IDIV SRC 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring源码解读——高频面试题

Spring IoC的底层实现 1.先通过createBeanFactory创建出一个Bean工厂&#xff08;DefaultListableBeanFactory&#xff09; 2.开始循环创建对象&#xff0c;因为容器中的bean默认都是单例的&#xff0c;所以优先通过getBean、doGetBean从容器中查找&#xff0c;如果找不到的…

QML状态与过渡(States and Transitions)

目录 一 状态&#xff08;States&#xff09; 一 过渡&#xff08;Transitions&#xff09; 通常我们将用户界面描述为一种状态。一个状态定义了一组属性的改变&#xff0c;并且会在一定的条件下被触发。另外在这些状态转化的过程中可以有一个过渡&#xff0c;定义了这些属性…

SpringBoot+vue文件上传下载预览大文件分片上传文件上传进度

文章目录 学习链接上传文件前端后端代码 下载文件a标签下载前端代码后台代码 动态a标签下载前端代码 axios 动态a标签前端代码 浏览器直接输入 预览文件前端代码后端代码 分片上传前后端分别md5加密spark-md5commons-codec 分片上传实现1前端代码后端代码 分片上传实现2前端代…

Spark RDD 持久化(CheckPoint 检查点)

RDD Cache 缓存 RDD 通过 Cache 或者 Persist 方法将前面的计算结果缓存&#xff0c;默认情况下会把数据以缓存 在 JVM 的堆内存中。但是并不是这两个方法被调用时立即缓存&#xff0c;而是触发后面的 action 算 子时&#xff0c;该 RDD 将会被缓存在计算节点的内存中 // cach…

常用排序算法汇总—Python版

一、选择排序 1. 原理&#xff1a; 选择排序&#xff08;Selection Sort&#xff09;是一种简单直观的排序算法&#xff0c;它的基本思路是将数组按顺序分成已排序部分和未排序部分&#xff0c;然后每次从未排序部分中选择出最小的元素&#xff0c;将其添加到已排序部分的末尾…

【五一创作】【软考:软件设计师】 5 计算机组成与体系结构(三)认证技术 | 计算机可靠性

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 本文收录于软考中级&#xff1a;软件设计师系列专栏,本专栏服务于软考中级的软件设计师考试,包括不限于知识点讲解与真题讲解两大部分,并且提供电子教材与电子版真题,关注私聊即可 …

三范式(详解+例子)

第一范式&#xff08;1NF&#xff09;&#xff1a;每一列都是不可分割的原子数据项&#xff08;什么意思&#xff0c;每一项都不可分割&#xff0c;像下面的表格就能分割&#xff0c;所以它连第一范式都算不上&#xff09; 分割后的样子 &#xff08;它就是第一范式了&#xff…

FPGA学习_01_基础知识(有点劝退,心灵弱小者勿入)

有些人喜欢直接拿开发板看教程开干&#xff0c;我认为了解点历史发展没什么坏处&#xff0c;一些FPGA的基础知识也是同样重要的。 1.1. FPGA的主要厂商 XILINX 占据FPGA绝大部分的市场份额 ALTERA 被 INTEL 167亿美元收购 改名为INTEL LATTICE 被神秘的中国公…

HMM理论学习笔记-隐马尔可夫模型的三个元素、假设和问题

文章目录 概率论基础条件概率全概公式边缘概率联合概率联合概率与边缘概率的关系贝叶斯公式&#xff08;条件联合概率&#xff09;马尔科夫链的概念 HMM简述HMM的三个元素符号定义1、状态转移概率矩阵A2、观测概率矩阵B3、初始状态概率向量π HMM的三个假设1、齐次马尔可夫假设…

Spring Boot使用(基础)

目录 1.Spring Boot是什么? 2.Spring Boot使用 2.1Spring目录介绍 2.2SpringBoot的使用 1.Spring Boot是什么? Spring Boot就是Spring脚手架,就是为了简化Spring开发而诞生的 Spring Boot的优点: 1.快速集成框架,提供了秒级继承各种框架,提供了启动添加依赖的功能 2.内…

简单搭建node后台(笔记用)

毕设过程 mongodb 配置 使用node写后台一些语法运用bug关于安装一款群控软件后&#xff0c;修改了环境变量导致后台崩溃![](https://img-blog.csdnimg.cn/7c684b2e318048b3ad1db78484e10e6a.jpeg) vue管理后台 mongodb 配置 https://blog.csdn.net/weixin_43405300/article/de…

【SPSS】相关分析和偏相关分析详细操作过程(附案例实战)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

java的spi机制使用场景讲解和具体使用

八股文背多了&#xff0c;相信大家都听说过一个词&#xff0c;SPI扩展。 有的面试官就很喜欢问这个问题&#xff0c;SpringBoot的自动装配是如何实现的&#xff1f; 基本上&#xff0c;你一说是基于spring的SPI扩展机制&#xff0c;再把spring.factories文件和EnableAutoConf…

C++(多态上)

目录: 1.多态的概念 2.多态的定义和实现 3.虚函数构成重写的特例 4.剖析一道非常经典的题 5.剖析多态的原理 ------------------------------------------------------------------------------------------------------------------------- 1.多态的概念 概念:通俗来说&#…

Word2vec原理+实战学习笔记(二)

来源&#xff1a;投稿 作者&#xff1a;阿克西 编辑&#xff1a;学姐 前篇&#xff1a;Word2vec原理实战学习笔记&#xff08;一&#xff09;​​​​​​​ 视频链接&#xff1a;https://ai.deepshare.net/detail/p_5ee62f90022ee_zFpnlHXA/6 5 对比模型&#xff08;论文Mod…

Python使用AI photo2cartoon制作属于你的漫画头像

Python使用AI photo2cartoon制作属于你的漫画头像 1. 效果图2. 原理3. 源码参考 git clone https://github.com/minivision-ai/photo2cartoon.git cd ./photo2cartoon python test.py --photo_path images/photo_test.jpg --save_path images/cartoon_result.png1. 效果图 官方…

(22)目标检测算法之 yolov8模型导出总结

yolov8模型导出总结 不断更新中… 几种部署情况: onnxxmlengine官网说明:https://github.com/ultralytics/ultralytics/blob/main/docs/modes/export.md导出参数: onnx 参数解析format: 导出的模型形式:onnx xml engine ... imgsz: 设置模型的输入尺寸大小,默认640*640 ke…

磁盘和固态磁盘

磁盘和固态磁盘 磁盘的物理结构 ​ 磁盘的表面由一些磁性的物质组成&#xff0c;可以用这些磁性物质来记录二进制数据。磁盘的盘面被划分成一个个磁道&#xff0c;这样一个“圈”就是一个磁道。同一磁盘上不同磁道上记录的信息量相同&#xff0c;因此内侧磁道上的数据密度较大…

STM32F429移植microPython笔记

目录 一、microPython下载。二、安装开发环境。三、编译开发板源码。四、下载验证。 一、microPython下载。 https://micropython.org/download/官网 下载后放在linux中。 解压命令&#xff1a; tar -xvf micropython-1.19.1.tar.xz 二、安装开发环境。 sudo apt-get inst…

【Java笔试强训 14】

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 一、选择题 二、编程题 &#x1f525;计算日期…