自动控制网—学习自动控制技术电气自动化技术从这里开始!
当前位置: 自动控制网 > 自动化 > 单片机 >

单片机算术运算指令

时间:2015-09-22 10:30来源:www.eadianqi.com 编辑:自动控制网
在51系列单片机的指令系统中,提供了完备的加、减、乘、除算术运算指令及增量(加1)、减量(减1)运算,可处理不带符号或带符号的8/16二进制数。除加1和减1指令外,算术运算指令会影响进位、半进位和溢出位三个标志位。 1.不带进位的加法指令 这组指令的作

在51系列单片机的指令系统中,提供了完备的加、减、乘、除算术运算指令及增量(加1)、减量(减1)运算,可处理不带符号或带符号的8/16二进制数。除加1和减1指令外,算术运算指令会影响进位、半进位和溢出位三个标志位。 自动控制网www.eadianqi.com版权所有

1. 不带进位的加法指令

自动控制网www.eadianqi.com版权所有

这组指令的作用是把立即数,直接地址、工作寄存器及间接地址内容与累加器A的内容相加,运算结果存在A中。

本文来自www.eadianqi.com

ADD  A, #data  ;(A)+ data→(A)  本文来自www.eadianqi.com

ADD  A, direct ;(A)+(direct)→(A) 自动控制网www.eadianqi.com版权所有

ADD  A, Ri ;(A)+(Ri)→(A) 

本文来自www.eadianqi.com

ADD  A, @Rj ;(A)+((Rj))→(A) 本文来自www.eadianqi.com

本组指令的执行将影响标志位AC、CY、OV、P。当和的第3、7位有进位时,分别将AC,CY标志位置位;否则复位。对于无符号数,进位标志位CY=1,表示溢出;CY=0表示无溢出。带符号数运算的溢出取决于第6、7位,若这2位中有一位产生进位,而另一位不产生进位,则溢出标志位OV置位,否则被复位。

自动控制网www.eadianqi.com版权所有

2. 带进位加法指令

自动控制网www.eadianqi.com版权所有

这组指令的作用是把立即数,直接地址、工作寄存器及间接地址内容与累加器A的内容以及进位位C相加,运算结果存在A中。 本文来自www.eadianqi.com

本组指令执行对标志位AC、CY、OV、P的影响与ADD指令相同。

本文来自www.eadianqi.com

3. 增量指令 本文来自www.eadianqi.com

这组指令的的功能均为原寄存器的内容加1,结果送回原寄存器。这组指令共有直接、寄存器、寄存器间接寻址等寻址方式: 本文来自www.eadianqi.com

INC  A  ;(A)+1→(A) 本文来自www.eadianqi.com

INC  direct  ;(direct)+1→(direct)

自动控制网www.eadianqi.com版权所有

INC  Ri  ;(Rn)+1→(Ri)

本文来自www.eadianqi.com

INC  @Rj   ;((Rj))+1→((Rj))  本文来自www.eadianqi.com

INC  DPTR  ;(DPTR)+1→(DPTR) 自动控制网www.eadianqi.com版权所有

增量指令不会对任何标志有影响。

本文来自www.eadianqi.com

4. 带借位减法指令 本文来自www.eadianqi.com

这组指令包含立即数、直接地址、间接地址及工作寄存器与累加器A连同借位位C内容相减,结果送回累加器A中。

本文来自www.eadianqi.com

SUBB  A, #data   ;(A)- data -(C)→(A)  自动控制网www.eadianqi.com版权所有

SUBB  A, direct   ;(A)-(direct) - (C)→(A) 自动控制网www.eadianqi.com版权所有

SUBB  A, Ri    ;(A)-(Ri) -(C)→(A)  自动控制网www.eadianqi.com版权所有

SUBB  A, @Rj   ;(A)-((Rj)) -(C)→(A) 

自动控制网www.eadianqi.com版权所有

本指令执行将影响标志位AC、CY、OV、P。若第七位有借位,则将CY置位,否则CY复位。若第3位有错位,则置位辅助进位标志AC,否则 AC复位。若第7和第6位中有一位需借位,而另一位不借位,则置位溢出标志OV。

本文来自www.eadianqi.com

当在进行单字节或多字节减法前,不知道进位标志位CY的值,则应在减法指令前先将CY复位清“0”。 自动控制网www.eadianqi.com版权所有

5. 减量指令

自动控制网www.eadianqi.com版权所有

这组指令的作用是把所指的寄存器内容减1,结果送回原寄存器,这组指令共有直接、寄存器、寄存器间接寻址等寻址方式:

自动控制网www.eadianqi.com版权所有

DEC  A   ;(A)-1→(A)

本文来自www.eadianqi.com

DEC  direct    ;(direct)-1→(direct)

自动控制网www.eadianqi.com版权所有

DEC  Ri    ;(Ri)-1→(Ri)

本文来自www.eadianqi.com

DEC  @Rj   ;((Rj))-1→((Rj))

本文来自www.eadianqi.com

运算结果不影响任何标志位。 本文来自www.eadianqi.com

6. 乘法指令 自动控制网www.eadianqi.com版权所有

这条指令的作用是把累加器A和寄存器B中的8位无符号数相乘,所得到的是16位乘积,这个结果低8位存在累加器A,而高8位存在寄存器B中。 自动控制网www.eadianqi.com版权所有

 MUL  AB ;(A)×(B)→(B)和(A)

本文来自www.eadianqi.com

乘法指令需要4个机器周期。 自动控制网www.eadianqi.com版权所有

如果乘积大于255(0FFH),即B的内容不为0时,则置位溢出标志位OV,否则OV复位。进位标志位CY总是复位为0。

本文来自www.eadianqi.com

7. 除法指令 自动控制网www.eadianqi.com版权所有

这条指令的作用是把累加器A的8位无符号整数除以寄存器B中的8位无符号整数,所得到的商存在累加器A,而余数存在寄存器B中。 自动控制网www.eadianqi.com版权所有

DIV  AB       ;(A)÷(B)→(A)和(B) 自动控制网www.eadianqi.com版权所有

除法指令需要4个机器周期。

本文来自www.eadianqi.com

本指令总是将CY和OV标志位复位。当除数(B中内容)为00H时,那么执行结果将为不定值,则置位溢出标志位OV。 本文来自www.eadianqi.com

8. 十进制调整指令 本文来自www.eadianqi.com

在进行BCD码运算时,这条指令总是跟在ADD或ADDC指令之后,其功能是将执行加法运算后存于累加器A中的结果进行调整和修正。

本文来自www.eadianqi.com

 DA  A 

自动控制网www.eadianqi.com版权所有

本文已影响