51单片机汇编语言教程:11课单片机算术运算指令.pdf

51单片机汇编语言教程:11课单片机算术运算指令.pdf

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
51单片机汇编语言教程:11课单片机算术运算指令

51单片机汇编语言教程-慧净电子会员收集整理 (全部28课) 51 11 - 51 11 - 5511 1111 -- 单片机汇编语言教程:第 课 单片机算术运算指令 (基于HJ-1G、HJ-3G实验板) 不带进位位的单片机加法指令 ADDA,#DATA;例:ADDA,#10H ADDA,direct ;例:ADDA,10H ADDA,Rn;例:ADDA,R7 ADDA,@Ri ;例:ADDA,@R0 用途:将A中的值与其后面的值相加,最终结果否是回到A中。 例:MOVA,#30H ADDA,#10H 则执行完本条指令后,A中的值为40H。 下面的题目自行练习 MOV34H,#10H MOVR0,#13H MOVA,34H ADDA,R0 MOVR1,#34H ADDA,@R1 带进位位的加法指令 ADDCA,Rn ADDCA,direct ADDCA,@Ri ADDCA,#data 用途:将A中的值和其后面的值相加,并且加上进位位C中的值。 说明:由于51单片机是一种8位机,所以只能做8位的数学运算,但8位运算的范围只有 0-255,这在实际工作中是不够的,因此就要进行扩展,一般是将2个8位的数学运算合起 来,成为一个16 位的运算,这样,能表达的数的范围就能达到0-65535。如何合并呢?其 实很简单,让我们看一个10进制数的例程: 66+78。 这两个数相加,我们根本不在意这的过程,但事实上我们是这样做的:先做6+8(低位), 然后再做6+7,这是高位。做了两次加法,只是我们做的时候并没有刻意分成两次加法来做 罢了,或者说我们并没有意识到我们做了两次加法。之所以要分成两次来做,是因为这两个 数超过了一位数所能表达的范置(0-9)。 在做低位时产生了进位,我们做的时候是在适当的位置点一下,然后在做高位加法是将这一 点加进去。那么计算机中做16位加法时同样如此,先做低8位的,如果两数相加产生了进 位,也要“点一下”做个标记,这个标记就是进位位C,在PSW 中。在进行高位加法是将这 个C加进去。例:1067H+10A0H,先做67H+A0H=107H,而107H显然超过了0FFH,因此 最终保存在A中的是7,而1则到了PSW 中的CY位了,换言之,CY就相当于是100H。 然后再做10H+10H+CY,结果是21H,所以最终的结果是2107H。 带借位的单片机减法指令 SUBBA,Rn SUBBA,direct SUBBA,@Ri SUBBA,#data 51 51 WWW.HLMCU.COM / 推荐使用慧净 实验板。推荐 学习网 淘宝网: 51单片机汇编语言教程-慧净电子会员收集整理 (全部28课) 设(每个H,(R2)=55H,CY=1,执行指令SUBBA,R2之后,A中的值为73H。 说明:没有不带借位的单片机减法指令,如果需要做不带位的减法指令(在做第一次相减时), 只要将CY 清零即可。 乘法指令 MULAB 此单片机指令的功能是将A和B 中的两个8位无符号数相乘,两数相乘结果一般比较大, 因此最终结果用1个16位数来表达,其中高8位放在B中,低8位放在A中。在乘积大于 FFFFFH(65535)时,0V置1(溢出),不然OV为0,而CY总是0。 例:(A)=4EH,(B)=5DH,执行指令 MULAB 后,乘积是1C56H,所以在B 中放的是1CH,而A中放的则是56H。 除法指令 DIVAB 此单片机指令的功能是将A中的8位无符号数除了B中的8位无符号数(A/B)。除法一般 会出现小数,但计算机中可没法直接表达小数,它用的是我们小学生还没接触到小数时用的 商和余数的概念,如13/5,其商是2,余数是3。除了以后,商放在A中,余数放在B中。 CY和OV 都是0。如果在做除法前B 中的值是00H,也就是除数为0,那么0V=1。 加1指令 INCA INCRn INCdirect INC@Ri INCDPTR 用途很简单,就是将后面目标中的值加1。例:(A)=12H,(R0)=33H,(21H)=32H,(34H) =22H,DPTR

文档评论(0)

xxj1658888 + 关注
实名认证
内容提供者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档