《算术运算类指令》由会员分享,可在线阅读,更多相关《算术运算类指令(24页珍藏版)》请在金锄头文库上搜索。
1、算术运算类指令主要内容:1、PSW寄存器功能说明2、加、减、乘、除算术运算指令(8位无符号二进制数的算术运算)3、算术运算指令对PSW寄存器的影响单片机原理与应用教学课件一、PSW程序状态寄存器反映程序执行时的状态信息,随着程序的 执行而发生变化。D7D7D5D4D3D2D1D0 CY AC OV PSW 寄存器1、CY(PSW.7) 进位标志,简记C在加法运算时,有进位,CY=1;无进位,CY=0在减法运算时,有借位,CY=1;无借位,CY=0 在乘除运算时,CY=0 单片机原理与应用教学课件2、AC(PSW.6) 半进位标志在加法运算时,低4位向高4位有进位,AC=1;否则AC=0在减法运
2、算时,低4位向高4位有借位,AC=1;否则AC=0注意:8位无符号二进制数范围 02558位有符号二进制数范围 -128 +1273、OV(PSW.2) 溢出标志在乘法运算时,乘积超过255,OV=1;否则OV=0在除法运算时,除数为零,OV=1;否则OV=0在有符号数加减运算时,数值超出有符号数的范围,OV=1单片机原理与应用教学课件二、算术运算类指令(6种/24条)加法运算: (ADD4条) 带进位加法运算: (ADDC4条) 带借位减法运算: (SUBB4条) 加1/减1操作: (INC,DEC9条) 单字节乘/除法运算: (MUL,DIV2条) 十进制调整: (DA A1条)单片机原理
3、及应用单片机原理及应用教学课件教学课件(1)加法运算指令(8条)1、不带进位加法指令(4条)指令格式: ADD A ,源操作数指令功能:目的操作数为累加器A。将累加器A中的数据与源操作数中数据相加,结果存入累加器A中,源操作数保持不变。PSW的影响:CY、AC、OV等标志。单片机原理与应用教学课件例如: 78H+94H=?程序。ORG 0000H ;程序开始MOV A , #78H ;(A)=78HADD A , #94H ;(A)=(A)+94HNOPEND ;结束程序结果:(A)=0CHCY=1 AC=0OV=078H 01111000+ 94H + 100101001 0CH 1 000
4、01100单片机原理与应用教学课件2、带进位加法指令(4条)指令格式: ADDC A ,源操作数指令功能:目的操作数为累加器A。将累加器A中的数据与源操作数中的数据与相加,再加上进位标志CY,结果存入累加器A中,源操作数保持不变。PSW的影响:CY、AC、OV等标志。注意:ADD指令和ADDC指令的区别。单片机原理与应用教学课件例如: 5678H+2394H=?程序。ORG 0000H ;程序开始MOV A , #78H ;(A)=78HADD A , #94H ;(A)=(A)+94HMOV R0 ,A ;低8位结果存入R0MOV A , #56H ;(A)=56HADDC A , #23H
5、 ;(A)=(A)+23H+CYMOV R1 , A ;高8位结果存入R1NOPEND ;结束56 78H 01010110 01111000+ 23 94H + 00100011 100101007A 0CH 01111010 00001100程序结果:(A) =7AH(R1)=7AH (R0)=0CHCY=0 AC=0OV=0单片机原理与应用教学课件(2)带借位减法运算指令(4条)指令格式:SUBB A ,源操作数指令功能:目的操作数为累加器A。累加器A中的数据减去源操作数中的数据,再减去进位标志CY,结果存入累加器A中,源操作数保持不变。PSW的影响:CY、AC、OV等标志。单片机原理与
6、应用教学课件例如:34H-56H=?程序ORG 0000H ;程序开始MOV PSW , #00H ;CY=0MOV A , #34H ;(A)=34HSUBB A , #56H ;(A)=(A)-56H-CYNOPEND ;结束34H 00110100 56H 01010110- CY - 0 1 DEH 1 11011110 程序结果:(A)=DEHCY=1 AC=1OV=0单片机原理与应用教学课件例如:7834H-1256H=?程序ORG 0000HMOV PSW , #00H ;CY=0MOV A , #34H ;(A)=34HSUBB A , #56H ;(A)=(A)-56H-CY
7、MOV R0 , A ;低8位结果存入R0MOV A , #78H ;(A)=78HSUBB A , #12H ;(A)=(A)-12H-CYMOV R1 , A ;高8位结果存入R1NOPEND ;结束78 34H 01111000 00110100- 12 56H - 00010010 0101011065 DEH 01100101 11011110程序结果:(A)=65H(R1)=65H (R0)=DEHCY=0 AC=0OV=0单片机原理与应用教学课件(3)乘除运算指令1、乘法指令(1条)指令格式:MUL AB指令功能:将累加器A中的数据与寄存器B中的数据相乘,乘积的高8位存入B中,乘
8、积的低8位存入A中。PSW的影响:OV、CY等标志。单片机原理与应用教学课件例如:ORG 0000H ;程序开始MOV A , #4 ;(A)=4MOV B , #5 ; (B)=5MUL AB ;(BA)=ABNOPEND ;结束程序结果:(B)=00H (A)=14HCY=0 OV=0单片机原理与应用教学课件例如:ORG 0000H ;程序开始MOV A , #4EH ;(A)=4EHMOV B , #5DH ;(B)=5DHMUL AB ;(BA)=ABNOPEND ;结束程序结果:(B)=1CH (A)=56HCY=0 OV=1单片机原理与应用教学课件2、除法指令(1条)指令格式: D
9、IV AB指令功能:将累加器A中的数据除以寄存器B中的数据,商存入A中,余数存入B中。PSW的影响:CY、OV等标志。例如:ORG 0000H ;程序开始MOV A , #36 ;(A)=36MOV B , #9 ;(B)=9DIV AB ;(A)=4,(B)=0,(CY)=0,(OV)=0NOPEND ;结束单片机原理与应用教学课件(4)加1指令和减1指令 1、加1指令(5条)指令格式: INC 操作数指令功能:将操作数中的数据加1,结果存入操作数中。PSW的影响:标志不影响。例如: ORG 0000H ;程序开始MOV A ,#0FEH ;(A)=FEHINC A ;(A)=(A)+1=F
10、FHINC A ;(A)=(A)+1=00HNOPEND ;结束 单片机原理与应用教学课件2、减1指令(4条)指令格式: DEC 操作数 指令功能: 将操作数中的数据减1,结果存入操作数中。PSW的影响:标志不影响。例如: ORG 0000H ;程序开始MOV A,#02H ;(A)=02HDEC A ;(A)=(A)-1=01HDEC A ;(A)=(A)-1=00HDEC A ;(A)=(A)-1=FFHNOPEND ; 结束 单片机原理与应用教学课件BCD码是指“用二进制表达的十进制数”。如: 十进制数20可以用二进制数00010100B表示; 也可以用十六进制数14H表示; 还可以用B
11、CD码 00100000B 或 20H 表示。4个二进制位就可以表示一位BCD码: 00001001 可表示十进制数(BCD数) 09; 8个二进制位就可以表示两位压缩的BCD码: 0000000010011001 表示 0099。(5)十进制调整:(DA A1条)用于两个BCD码之间的相加,这条指令只能跟在 ADD 或 ADDC 之后单片机原理及应用单片机原理及应用教学课件教学课件若(A)309或(AC)=1则(A)30(A)306; 若(A)749或(CY)=1则(A)74(A)746;P.60例5:两个十进制数“65”与“58”相加, 根据常识,显然其和应当为“123”。MOV A,#6
12、5H ADD A,#58H DA A结果:(A)= 23H(CY)= 1指令 “DA A” 完成的操作:6 5 0110 01015 8 0101 1000+1318 1926 6 0110 0110单片机原理及应用单片机原理及应用教学课件教学课件若(A)309或(AC)=1则(A)30(A)306; 若(A)749或(CY)=1则(A)74(A)746;又如:两个十进制数“39”与“58”相加,根据 常识,显然其和应当为“97”。MOV A,#39H ADD A,#58H DA A结果:(A)= 97H(CY)= 03 9 0011 10015 8 0101 1000+072396 0110指令 “DA A” 完成的操作:单片机原理及应用单片机原理及应用教学课件教学课件指令练习1、指出下列程序中,每条指令的执行结果ORG 0000HMOV 30H , #52HMOV A , #78HMOV A