汇编语言03:8086算术运算指令

您所在的位置:网站首页 汇编语言sbb指令 汇编语言03:8086算术运算指令

汇编语言03:8086算术运算指令

2024-07-12 17:07:12| 来源: 网络整理| 查看: 265

目录

进位标志CF

溢出标志OF

其他状态标志

加法指令

加法指令ADD

带进位加法指令ADC

增量指令INC

减法指令

减法指令SUB

带借位减法指令SBB

减量指令DEC

求补指令NEG

比较指令CMP

乘法指令

无符号数乘法指令MUL

有符号乘法指令IMUL

除法指令

无符号数二进制除法指令DIV

有符号数二进制除法指令IDIV

符号扩展指令

8位扩展指令CB(byte)W(word)

16位扩展指令CW(word)D(doubleword)

十进制调整指令

压缩BCD码调整指令DAA、DAS

非压缩BCD码调整指令

加和调整指令AAA

减差调整指令AAS

乘积调整指令AAM

除法调整指令AAD

总结:

8086的算术运算指令除了常见的加、减、乘、除指令,还有符号拓展指令和十进制调整指令。同时,在讨论算术运算指令时,我们需要仔细考虑状态标志带来的影响。

进位标志CF

首先是进位标志CF,它指示字节最高位是否产生进位。注意,在字节内产生进位不影响CF。例如如下二进制加法:

00011000+01111100 = [0]10010100

由于最高位没有继续向上进位,因此CF=0,但是如果是如下情况:

10011000+01111100 = [1]00010100

最高位继续向上进位,因此CF=1。

溢出标志OF

溢出标志用于表示有符号整数加减运算的结果是否超出了范围。若超出范围,则是有溢出,设置OF=1,否则OF=0。例如如下有符号运算:

00111010+0111100 = 10110110 (58+124=182)

运算结果发生了溢出,所以OF是1,实际上表达的是负数。10101010按照负数补码+1得到绝对值86,故这个数是-86。他和二进制数124相加,结果发生了进位,但是由于是有符号整数相加,不考虑进位,因此结果表现为38.

由上可以看出,进位标志CF和溢出标志OF作用的地方不相同。其中,CF用于判断无符号整数运算结果是否超出范围,而溢出标志表示有符号整数运算结果是否超出范围。实际上,在使用汇编语言进行编程时,标志的控制方面是需要程序员注意的。

其他状态标志

1.零标志ZF反映运算结果是否为0。注意,产生进位的情况不在该标志的考虑范围内。例如如下二进制加法

11111111+00000001 = [1]00000000.

此时进位标志CF被设置为1,但同时地零标志ZF也会被设置为1,表示运算结果是0.

2.符号标志SF反映运算结构是正数还是负数。可以通过符号位来判断。

3.奇偶标志PF并非判断结果是奇数还是偶数,而是反映运算结果最低字节中‘1’的个数是偶数还是奇数,从而实现奇偶校验。若个数是偶数个,则PF=1,否则PF=0。

4.调整标志AF反映加减运算时最低半字节有无进位或者借位.当有进(借)位时,将AF设置为1,否则设置为0.

总结了以上运算时可能遇到的标志之后,接下来介绍算术运算指令。、

加法指令

8086提供了三种加法指令:

加法指令ADD

操作:将源操作数与目的操作数相加,结果送目的操作数。其基本格式如下:

ADD reg,imm/reg/mem ADD mem,imm/reg

寻址方式:和其他指令相同,源操作数和目的操作数不可以同时是存储器的存储单元。

标志影响:对OF,SF,ZF,AF,PF,CF造成影响。

带进位加法指令ADC

操作:在执行ADD指令的同时加上进位标志CF。主要用于和ADD指令一起完成多精度数相加。其基本格式如下:

ADC reg,imm/reg/mem ADC mem,imm/reg

寻址方式:和其他指令相同,源操作数和目的操作数不可以同时是存储器的存储单元。

标志影响:ADC用在下位进位的加法中,在运算时将会在除最低字节考虑CF的影响。例如,若操作数值分别为0001H和0002H,CF=1,那么得出结果将会是0005H。

增量指令INC

操作:只有一个操作数,对操作数加1。其基本格式如下:

INC reg/mem

寻址方式:因为为自增,不能为立即数寻址。

标志影响:不影响CF,其他情况和ADD,ADC一样。

从汇编指令可以看出,这是高级语言中运算符+和++(C语言)的雏形和底层。

减法指令

减法指令执行字或者字节的减法运算。常用的减法指令有SUB,SBB,DEC,NEG,CMP

减法指令SUB

操作:执行减法指令,结果送目的操作数,类似于ADD指令。其基本格式如下:

SUB reg,reg/mem/imm SUB mem,reg/imm

寻址方式:和其他指令相同,源操作数和目的操作数不可以同时是存储器的存储单元。

标志影响:影响OF,SF,PF,CF,ZF,AF.

带借位减法指令SBB

操作:在执行SUB的基础上,如果CF为1,还需要再减去1。其基本格式如下:

SBB reg,imm/reg/mem SBB mem,imm/reg

寻址方式:和其他指令相同,源操作数和目的操作数不可以同时是存储器的存储单元。该指令常用于和SUB结合来进行多精度的减法。

标志影响:用在下位借位的减法中,一般会在除最低字节外考虑CF的影响。

减量指令DEC

操作:只有一个操作数,对操作数-1.其基本格式如下:

DEC reg/mem

寻址方式:因为为自减,不能为立即数寻址。

标志影响:不影响CF,其他情况和SUB,SBB一样。

求补指令NEG

操作:对操作数按位取反后加1.当操作数是有符号数时,求补指令作用为求其相反数。其基本格式如下:

NEG reg/mem

寻址方式:因为为求反,不能为立即数寻址。

标志影响:和SUB一样。

比较指令CMP

操作:将目的操作数减去源操作数,但是结果不返回。即:只会影响标志,不会影响操作数。一般用于流程的控制,比如条件和循环判断。其基本格式如下:

CMP reg,imm/reg/mem CMP mem,imm/reg

寻址方式:和其他指令相同,源操作数和目的操作数不可以同时是存储器的存储单元。

影响标志:和SUB一样。

下方展示了一个比较和返回的简单代码:

CMP AL,100 ;AL-100 JB below ;AL


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭