产品概述

单片机减运算 跟电师傅学单片机(12):单片机算术运算加减法指令图文新解

小编 2024-10-06 产品概述 23 0

跟电师傅学单片机(12):单片机算术运算加减法指令图文新解

单片机算术运算类指令(24条)

算术运算指令是8位二进制数进行加、减、乘、除四则运算,以及加1、减1、十进制调整等。

本节介绍其中加减法12条指令。

加减法指令示意图

1:不带进位加法指令(4条)

ADD:不带进位标志CY的加法,功能是累加器A中的内容与源操作数所确定单元中的内容相加,其结果仍存在A中。

ADD A,Rn;属于寄存器寻址方式。指令功能是将寄存器Rn中的内容与累加器A中的内容相加,其结果送回A中。

ADD A,direct;属于直接寻址方式。指令功能是将直接地址direct中的内容与累加器A中的内容相加,其结果送回A中。

ADD A,@Rn;属于寄存器间接寻址方式。指令功能是将寄存器间接寻址单元中的内容与累加器A中的内容相加,其结果送回A中。

ADD A,#data;属于立即数寻址方式。指令功能是将立即数data与累加器A中的内容相加,其结果送回A中。

2:带进位加法指令(4条)

ADDC:带进位标志CY的加法,功能是累加器A中的内容与源操作数所确定单元中的内容相加,其结果仍存在A中。与ADD指令类似,不同之处是在执行加法时,还要将进位标志CY的内容一起加进去。

进位加法计算

标志寄存器PSW示意图

标志寄存器PSW功能图

CY:是标志寄存器PSW中的一个进位标志位。标志寄存器PSW也称程序状态字PSW,用于存放程序运行状态信息。

单片机系统上电或复位时,PSW初始值为00H。

3:减法指令(4条)

SUBB:带借位减法指令,与带进位加法指令类似,指令功能是把累加器A中的内容减去源操作数所确定单元中的内容和进位标志CY,其结果送回A中。

注意:在减法指令里面,只有带借位的减法,没有不带借位的减法,做减法运算时,如果是低8位时,必须把CY清零。

跟电师傅学单片机(13):单片机算术运算类指令图文讲解

一:加一减一指令(共9条)

单片机加一减一指令表

1、INC:单片机加1指令(共5条),主要用于修改地址指针和计数次数,只有一个操作数。

指令功能:是将操作数所确定的单元或寄存器中的内容加1,最后将结果还是送回原操作数单元中。

操作数:累加器A、寄存器Rn、直接地址direct、寄存器间接寻址单元、数据指针寄存器DPTR中的内容。

2、DEC:单片机减1指令(共4条),只有一个操作数,与INC指令类似。

指令功能:是将操作数所确定的单元或寄存器中的内容减1,最后将结果还是送回原操作数单元中。

操作数:累加器A、寄存器Rn、直接地址direct、寄存器间接寻址单元中的内容。

二:十进制调整指令(1条)

DA A

单片机十进制调整指令,功能是在进行BCD码加法运算时,用来对BCD码的加法运算结果自动进行修正,修正结果存放在A中。

BCD码:是二进码十进数或二-十进制代码,用4位二进制数来表示1位十进制数中的0~9这10个数码。

注意:

1:在进行BCD加法运算时,在单片机加法指令ADD或ADDC指令后紧跟着DA A指令,单片机自动判断和修正。

2:对BCD码的减法运算时不能用DA A指令不进行修正,不适用减法指令。

3:影响PSW中CY、AC、OV标志位。(请看下图:标志寄存器PSW功能图)

三:乘法指令(1条)

MUL AB

单片机乘法指令,功能是实现2个8位无符号数的乘法运算,相乘的2个数分别存放在累加器A中和寄存器B中,乘积结果为16位:低8位存放在A中,高8位存放在B中。

注意:

1:乘数和被乘数可以交换。

2:乘积结果大于255,PSW中的溢出标志位OV置1,否则为0 。

单片机标志寄存器PSW功能图

单片机指令举例:

02H和04H的乘法运算

MOV A,#02H

MOV B,#04H

MUL AB

执行指令结果:

A:08H

B:00H

OV:0

四:除法指令(1条)

DIV AB

单片机除法指令,功能是实现2个8位无符号数的除法运算,被除数放在累加器A中,除数放在寄存器B中。相除结果:商放在A中,余数放在B中。

注意:

单片机除法指令也影响PSW中CY和OV标志位,相除之后CY和OV均为0。(请看上图:标志寄存器PSW功能图)

单片机指令举例:

22和4的除法运算

MOV A,#22

MOV B,#04

MUL AB

执行指令结果:

A:05H

B:02H

CY:0

OV:0

单片机乘除法指令

到此为止,24条单片机算术运算类指令讲解完毕,谢谢阅读!欢迎留言讨论,共同提高!

相关问答

关于C51 单片机 的小数点四舍五入处理?

将你需保留的那一位的低一位加5之后舍掉即可单片机内一般采用整数计算,如果要保留两位小数,需将原数据扩大100倍,小数点该向左移2位18754/100=187·54但单片机...

51 单片机 inc指令?

ⅠNC是51单片机逻辑运算指令,它只能针对RAM单元进行字节操作,功能是将单元数据加1。使用这条指令时需要注意:第一,ⅠNC不是算术指令,所以不会对进位位CY、...

单片机 逻辑与 运算 具有什么功能?

ORL能将某些位置一,对于想置一的位与行“或”逻辑,对于想保持原来的位与0进行“或”逻辑。单片机也被称为单片微控器,属于一种集成式电路芯片。在单片机中主...

C51 单片机 怎么用C语言实现数值的开方和平凡 运算 ?

首先,楼主要明白,C51是基于标准的C语言扩展而来的,所以,标准C语言能做的东西,C51也可以。平方运算,自不必说,就是两个数相乘:例如:floata,b,c;c=a...首...

求各位大哥举例说明 单片机 中的OV的用法! 单片机 书上说用0V=1表示错误,怎么理解?

OV主要用于有符号数的运算,平时很少用。对有符号数来说,8位二进制数的最高位D7为符号位,当两个有符号数相加时,数的最高位这时应该是D6,也就是说按道理来讲...

单片机 十进制怎么 运算 ?

如果是51单片机的话,做十进制减法运算,只能用ADD和ADDC指令做,因为只有这两条加法指令运算的结果才能用DAA指令进行十进制调整。方法是:如Y=A-B,变成Y=A+(...

有啥 单片机运算 速度很快的?

普通的加减乘除,用一般的增强型51单片机或AVR单片机足矣运算时间不到1ms如果进行三角函数运算,大约几ms大量的浮点和三角函数运算建议用STM32单片机普通...

单片机 这题为啥cy=1?cy怎么看的?说d3,d7啥的,啥意思?

CY在加运算中是进位标志例如85H+AFH=134H(用计算器就能算出来),A只能存下后8位34H,存不了第9位1H,所以就把多出来的这一位存到了CY中,D3,D7大概指的是第3...

单片机 试题解答1.当CPU响应外部中断0后,PC的值是(A)A.0003HB...

[最佳回答]一,选择题1.当CPU响应外部中断0后,PC的值是(A)A.0003HB.2000HC.000BHD.3000H2.当MCS-51复位时,下面说法准确的是(A)A.PC=0000HB....

单片机 next是什么指令?

在单片机中,"next"不是一个指令。单片机的指令集由特定的芯片制造商定义,每个芯片都有自己的指令集。常见的单片机指令包括数据传输、算术运算、逻辑运算、跳...

猜你喜欢