- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机_算术运算类 指令课件
第六课 复习 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为无符号整数的多字节加法、减法、移位等操作提供了方便; 溢出标志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.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 ,结果再送回原单元。这些指令仅 INC A 影响P标志。其余指令都不影响标志位的状态。 3.增1指令 3.4.2 算术运算类指令(24条) 3.4.2 算术运算类指令(24条) 指令的功能是对累加器A中刚进行的两个BCD码的加法的结果进行十进制调整。 两个压缩的BCD码按二进制相加后,必须经过调整方能得到正确的压缩BCD码的和。 DA A 4.十进制调整指令 ADD或ADDC DA A A中一加数 另一加数 要求:BCD码 A中结果一定是BCD码,实现了十进制的加法 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)=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需借位时,(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)=1(位6有借位,位7无借位),(P)=0。 3.4
文档评论(0)