单片机_算术运算类指令课件

上传人:aa****6 文档编号:57362953 上传时间:2018-10-21 格式:PPT 页数:35 大小:797.50KB
返回 下载 相关 举报
单片机_算术运算类指令课件_第1页
第1页 / 共35页
单片机_算术运算类指令课件_第2页
第2页 / 共35页
单片机_算术运算类指令课件_第3页
第3页 / 共35页
单片机_算术运算类指令课件_第4页
第4页 / 共35页
单片机_算术运算类指令课件_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《单片机_算术运算类指令课件》由会员分享,可在线阅读,更多相关《单片机_算术运算类指令课件(35页珍藏版)》请在金锄头文库上搜索。

1、第六课,复习,3.4.2 算术运算类指令,3.4.3 逻辑运算类指令,3.4 MCS-51指令系统的分类介绍,3.4.2 算术运算类指令(24条),算术运算指令可以完成加、减、乘、除及加加1和减1等运算。这类指令多数以A为源操作数之一,同时又使A为目的操作数。,1 .不带进位加法指令(4条),2 .带进位加法指令(4条),3 .带借位减法指令(4条),4 . 乘法指令(1条),8. 十进制调整指令(1条),5. 除法指令(1条),6. 加1指令(5条),7. 减1指令(4条),3.4 MCS-51指令系统分类介绍,3.4.2 算术运算类指令(24条),进位(借位)标志CY为无符号整数的多字节加

2、法、减法、移位等操作提供了方便; 溢出标志OV可方便的控制补码运算; 辅助进位标志AC用于BCD码运算。 算术运算操作将影响PSW中的OV、CY、AC和P等。,标志位的置位方式,标志位的作用,例如:,3.4.2 算术运算类指令(24条),指令的功能是把源操作数与累加器A的内容相加再与进位标志CY的值相加,结果送入目的操作数A中。 加的进位标志CY的值是在该指令执行之前已经存在的进位标志的值,而不是执行该指令过程中产生的进位 。,2.带进位加法指令,3.4.2 算术运算类指令(24条),例1:设(A)=0C3H,(R0)=0AAH, (CY)=1。 执行指令“ADDC A,R0”后的结果及标志位

3、如何?,3.4.2 算术运算类指令(24条),(31H)(30H) +(41H)(40H)(31H)(30H),例2:编程,将(30H),(31H)单元中的数与(40H)、 (41H)单元中的数相加,结果存于(30H),(31H)单元中。,3.4.2 算术运算类指令(24条),例3:写指令,完成RAM中(30H)、(31H)、(32H)连加,结果送33H?,用ADD还是用ADDC ?,ABC: MOV A, 30H ADD A, 31H ADD A, 32H MOV 33H, A RET,当几十个数连加时,怎么办?,3.4.2 算术运算类指令(24条),指令的功能是把源操作数的内容加 1 ,结

4、果再送回原单元。这些指令仅 INC A 影响P标志。其余指令都不影响标志位的状态。,3.增1指令,3.4.2 算术运算类指令(24条),3.4.2 算术运算类指令(24条),指令的功能是对累加器A中刚进行的两个BCD码的加法的结果进行十进制调整。两个压缩的BCD码按二进制相加后,必须经过调整方能得到正确的压缩BCD码的和。,DA A,4.十进制调整指令,3.4.2 算术运算类指令(24条),调整完成的途径是:,(1)当累加器A中的低4位数出现了非BCD码(10101111)或低4位产生进位(AC=1),则应在低4位加6调整,以产生低4位正确的BCD结果。,(2)当累加器A中的高4位数出现了非B

5、CD码(10101111)或高4位产生进位(CY=1),则应在高4位加6调整,以产生高4位正确的BCD结果。十进制调整指令执行后,PSW中的CY表示结果的百位值。,3.4.2 算术运算类指令(24条),例 若(A)0101 0110B,表示的BCD码为,(R2)0110 0111B,表示的BCD码为,(CY)0。执行以下指令: ADD A,R2 DA A 由于(A)0010 0011B,即,且(CY)1,即,结果为BCD数123。 应该注意,DA指令不能对减法进行十进制调整。,3.4.2 算术运算类指令(24条),CY:差的位7需借位时,(CY)=1;否则,(CY)=0。 AC:差的位3需借位

6、时,(AC)=1;否则,(AC)=0。 OV:若位6有借位而位7无借位或位7有借位而位6无借位时,(OV)=1。 如要用此组指令完成不带借位减法,只需先清CY为 0。,5.带借位减法指令,这组指令的功能是从累加器A中减去源操作数所指出的数及进位位CY的值,差保留在累加器A中。由于89C51指令系统中没有不带借位的减法指令,如需要的话,可以在“SUBB”指令前用“CLR C”指令将Cy清0,这一点必须注意。,3.4.2 算术运算类指令(24条),例 若(A)=C9H,(R2)=54H,(CY)=1,执行指令 SUBB A,R2 之后,由于:,即:(A)=74H,(CY)=0,(AC)=1,(OV

7、)=1(位6有借位,位7无借位),(P)=0。,3.4.2 算术运算类指令(24条),这组指令的功能是把操作数的内容减 1 ,结果再送回原单元。 这组指令仅 DEC A 影响P标志。其余指令都不影响标志位的状态。 与INC比较,少了一种寻址方式。,6.减1指令,3.4.2 算术运算类指令(24条),关于PSW的自动置位,关于CY、OV的解读:,1. 数电中的加法器:,2. OV的自动置位OV=C6C7 当同号相加时,若结果异号,则溢出。报OV=1 当异号相减时,减数与差同号,则溢出。报OV=1,3.4.2 算术运算类指令(24条),当进行无符号运算时,CY有意义。当进行有符号运算时,OV有意义

8、。 CPU的运算器并不区分是有、无符号运算,它进行的是补码运算,由编程者自己解读。,有符号数,ALU,有符号数,OV?,无符号数,ALU,无符号数,CY?,MUL AB ;累加器A与B寄存器相乘 该指令的功能是将累加器A与寄存器B中的无符号8位二进制数相乘 ,乘积的低8位留在累加器A中,高8位存放在寄存器B中。 当乘积大于FFH时,溢出标志位(OV)=1。而标志CY总是被清0。,例 若(A)=50H,(B)=A0H, 执行指令 MUL AB ;(A)=00H,(B)=32H, (OV)=1, (CY)=0。,7.乘法指令,3.4.2 算术运算类指令(24条),DIV AB ;累加器A除以寄存器

9、B 该指令的功能是将累加器A中的无符号8位二进制数除以寄存器B中的无符号8位二进制数 ,商的整数部分存放在累加器A中,余数部分存放在寄存器B中。 当除数为0时,则结果的A和B的内容不定,且溢出标志位(OV)=1。而标志CY总是被清0。,例 若(A)=FBH(251),(B)=12H(18), 执行指令 DIV AB ; (A)=0DH,(B)=11H, (OV)=0,(CY)=0。,8.除法指令,3.4.2 算术运算类指令(24条),逻辑运算指令可以完成与、或、异或、清0和取反操作,当以累加器A为目的操作数时,对P标志有影响;,累加器清0操作对P标志有影响。,循环指令是对累加器A的循环移位操作

10、,包括左、右方向以及带与不带进位位等移位方式,移位操作时,带进位的循环移位对CY和P标志有影响;,3.4.3 逻辑运算类指令(25条),1.逻辑运算:与、或、异或(18条),2.累加器清0和取反(2条),3.累加器循环移位 (5条),3.4.3 逻辑运算类指令(25条),3.4.3 逻辑运算类指令(25条),3.4.3 逻辑运算类指令(25条),1.逻辑运算:与、或、异或,前2条指令的功能是把源操作数与直接地址指示的单元内容相与,结果送入直接地址指示的单元。后4条指令的功能是把源操作数与累加器A的内容相与,结果送入累加器A中。,例 若(A)=C3H,(R0)=AAH,执行指令 ANL A,R0

11、 之后,(A)=82H。,3.4.3 逻辑运算类指令(25条),前2条指令的功能是把源操作数与直接地址指示的单元内容相或,结果送入直接地址指示的单元。 后4条指令的功能是把源操作数与累加器A的内容相或,结果送入累加器A中。,例 若(A)=C3H,(R0)=55H,执行指令ORL A,R0 之后,(A)=D7H。,1.逻辑运算:与、或、异或,3.4.3 逻辑运算类指令(25条),前2条指令的功能是把源操作数与直接地址指示的单元内容异或,结果送入直接地址指示的单元。后4条指令的功能是把源操作数与累加器A的内容异或,结果送入累加器A中。,例 若(A)=C3H,(R0)=AAH,执行指令 XRL A,

12、R0 之后,(A)=69H。,1.逻辑运算:与、或、异或,3.4.3 逻辑运算类指令(25条),;A 0 ;A ,这两条指令的功能分别是把累加器A的内容清 0 和取反,结果仍在A中。数据也只有在A中时,才能进行字节操作的清零和取反。 例 若(A)=A5H, 执行指令 CLR A 之后,(A)=00H 执行指令 CPL A 之后,(A)=5AH 但: 若 (30H)=A5H, 执行指令 CLR 30H 之后,(30H)00H 执行指令 CPL 30H 之后,(30H)5AH,2.累加器清0和取反,3.4.3 逻辑运算类指令(25条),所有的移位都是循环移位。有八位的移位,也有九位的移位。唯一的操

13、作数是A.,3.累加器循环移位,3.4.3 逻辑运算类指令(25条),有时“累加器A内容乘2”的任务可以利用指令RLC A方便地完成。,例:若(A)= 06H = 00000110B=06H, (CY)0。 执行指令RLC A后,(A)= 00001100B = 0CH ,(CY)=0 。结果为:0CH206H,SWAP A SWAP指令的功能是累加器 的高低4位互换。,若(A)30H,执行指令SWAP A后,(A)03H。,3.4.3 逻辑运算类指令(25条),练习:用移位和加法指令实现R0的内容乘以10,并把结果送R0。(数据较小,结果仍为一个字节),ABC: MOV A, R0RL AMOV B, ARL ARL AADD A, BMOV R0, ARET,3.4.3 逻辑运算类指令(25条),2010-03-25 作业,P36 12、16,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号