欢迎来到天天文库
浏览记录
ID:16486833
大小:797.50 KB
页数:35页
时间:2018-08-10
《单片机_算术运算类 指令课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第六课复习3.4.2算术运算类指令3.4.3逻辑运算类指令3.4MCS-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.4MCS-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
3、)=0AAH,(CY)=1。执行指令“ADDCA,R0”后的结果及标志位如何?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:MOVA,30HADDA,31HADDA,32HMOV33H,
4、ARET当几十个数连加时,怎么办?3.4.2算术运算类指令(24条)指令的功能是把源操作数的内容加1,结果再送回原单元。这些指令仅INCA影响P标志。其余指令都不影响标志位的状态。3.增1指令3.4.2算术运算类指令(24条)3.4.2算术运算类指令(24条)指令的功能是对累加器A中刚进行的两个BCD码的加法的结果进行十进制调整。两个压缩的BCD码按二进制相加后,必须经过调整方能得到正确的压缩BCD码的和。DAA4.十进制调整指令ADD或ADDCDAAA中一加数另一加数要求:BCD码A中结果一定是BCD码,
5、实现了十进制的加法3.4.2算术运算类指令(24条)调整完成的途径是:(1)当累加器A中的低4位数出现了非BCD码(1010~1111)或低4位产生进位(AC=1),则应在低4位加6调整,以产生低4位正确的BCD结果。(2)当累加器A中的高4位数出现了非BCD码(1010~1111)或高4位产生进位(CY=1),则应在高4位加6调整,以产生高4位正确的BCD结果。十进制调整指令执行后,PSW中的CY表示结果的百位值。3.4.2算术运算类指令(24条)例若(A)=01010110B,表示的BCD码为,(R2)=
6、01100111B,表示的BCD码为,(CY)=0。执行以下指令:ADDA,R2DAA由于(A)=00100011B,即,且(CY)=1,即结果为BCD数123。应该注意,DA指令不能对减法进行十进制调整。3.4.2算术运算类指令(24条)CY:差的位7需借位时,(CY)=1;否则,(CY)=0。AC:差的位3需借位时,(AC)=1;否则,(AC)=0。OV:若位6有借位而位7无借位或位7有借位而位6无借位时,(OV)=1。如要用此组指令完成不带借位减法,只需先清CY为0。5.带借位减法指令这组指令的功能是从
7、累加器A中减去源操作数所指出的数及进位位CY的值,差保留在累加器A中。由于89C51指令系统中没有不带借位的减法指令,如需要的话,可以在“SUBB”指令前用“CLRC”指令将Cy清0,这一点必须注意。3.4.2算术运算类指令(24条)例若(A)=C9H,(R2)=54H,(CY)=1,执行指令SUBBA,R2之后,由于:即:(A)=74H,(CY)=0,(AC)=1,(OV)=1(位6有借位,位7无借位),(P)=0。3.4.2算术运算类指令(24条)这组指令的功能是把操作数的内容减1,结果再送回原单元。这组
8、指令仅DECA影响P标志。其余指令都不影响标志位的状态。与INC比较,少了一种寻址方式。6.减1指令3.4.2算术运算类指令(24条)关于PSW的自动置位,关于CY、OV的解读:1.数电中的加法器:⊕和进位2.OV的自动置位OV=C6⊕C7当同号相加时,若结果异号,则溢出。报OV=1当异号相减时,减数与差同号,则溢出。报OV=13.4.2算术运算类指令(24条)当进行无符号运算时,CY有意义。当进行
此文档下载收益归作者所有