第3章 AT89S51单片机指令系统课件.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 3. 关于累加器A与Acc的书写问题 累加器可写成A或Acc,区别是什么? Acc汇编后的机器码必有一个字节的操作数是累加器的字节 地址E0H,A汇编后则隐含在指令操作码中。 例如: “INC A”的机器码,查表3-2是04H。 如写成“INC Acc”后,则成了“INC direct”的格式,再查表3-2,对应机器码为“05H E0H”。在对累加器A直接寻址和累加器A的某一位寻址要用Acc,不能写成A。 例如,指令“POP Acc”不能写成“POP A”; 指令“SETB Acc.0”,不能写成“SETB A.0”。 上述的BCD码运算中: (a)结果正确。 (b)结果不正确,因为BCD码中没有1111这个编码。 (c)结果不正确,正确结果应为17,而运算结果却是11。 二进制数加法指令不能完全适用于BCD码十进制数的加法运算,要对结果做有条件的修正,这就是所谓的十进制调整问题。 (2)出错原因和调整方法 出错原因在于BCD码共有16个编码,但只用其中的10个,剩下6个没用到。这6个没用到的编码(1010,1011,1100,1101,1110,1111)为无效编码。 在BCD码加运算中,凡结果进入或者跳过无效编码区时,结果出错。因此1位BCD码加法运算出错的情况有两种: ① 加结果大于9,说明已经进入无效编码区。 ② 加结果有进位,说明已经跳过无效编码区。 无论哪种错误,都因为6个无效编码造成的。因此,只要出现上述两种情况之一,就必须调整。方法是把运算结果加6调整,即十进制调整修正。 十进制调整方法如下: ① 累加器低4位大于9或辅助进位位Ac=1,则低4位加6修正。 ② 累加器高4位大于9或进位位Cy=1,则高4位加6修正。 ③ 累加器高4位为9,低4位大于9,高4位和低4位分别加6修正 上述调整修正,是通过执行指令“DA A”来自动实现的。 【例3-4】 (A)=56H,(R5)=67H,把它们看作两个压缩的BCD数,进行BCD加法。执行指令: ADD A,R5 DA A 高4位和低4位分别大于9,所以“DA A”指令要分别加6,对结果修正。 结果为(A)=23H,Cy=1。 由上可见,56+67=123,结果正确。 5.带借位的减法指令 SUBB A,Rn ; (A)-(Rn)-Cy→A,n =0~7 Cy、Ac、OV? SUBB A,direct ; (A)-(direct)-Cy→A SUBB A,@Ri ; (A)-((Ri))-Cy→A, i =0,1 SUBB A,#data ; (A)-#data-Cy→A 【例3-5】 (A)=C9H,(R2)=54H,Cy=1,执行指令 SUBB A,R2 运算式为 结果:?(A)=74H,Cy=0,Ac=0,OV=1(位6向位7借位)。 * 6.减1指令 DEC A ;(A)-1→A DEC Rn ;(Rn)-1→Rn,n=0~7 DEC direct ;(direct)-1→direct DEC @Ri ;((Ri))-1→(Ri),i =0,1 变量减1。00H-1=FFH,不影响标志位(P标志除外)。 【例3-6】 (A)=0FH,(R7)=19H,(30H)=00H,(R1)=40H,(40H)=0FFH。 DEC A ;(A)-1→A DEC R7 ;(R7)-1→R7 DEC 30H ;(30H)-1→30H DEC @R1 ;((R1))-1→(R1) 结果:(A)=0EH,(R7)=18H,(30H)=0FFH,(40H)=0FEH,P=1。 7.乘法指令 MUL AB ;A×B→BA 积低字节在A中,高字节在B中。如果积大于255,则OV置1,否则OV清0。Cy标志总是清0。 8.除法指令 DIV AB ;A/B→A(商),余数→B 商(为整数)存放在A中,余数存放在B中,且Cy和溢出标志位OV清“0”。如果B的内容为0(即除数为0),则存放结果的A、B中的内容不定,并溢出标志位OV置1。 【例3-7】 (A)=FBH,(B)=12H,执行指令 DIV AB 结果:?

文档评论(0)

精品文库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档