谈谈51单片机的指令字节数.doc

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

谈谈51单片机的指令字节数 现在的单片机程序大多都用C语言来编写了,汇编看起来有点OUT了。可是有时候汇编却很有用,因为它执行的效率高,而且每条指令占用的字节数和时钟周期都是确定的,这对于查表编程及对时钟要求严格的地方来说,是非常有用的。在嵌入式操作系统的移植中,有一部分代码是得用汇编来写的,不过这跟今天要谈的内容无关。现有来谈谈MCS-51单片机的指令的字节数。 汇编语言的语句的格式为: 标号段: 操作码段 第一操作数,第二操作数 ;注释段 (如 START: MOV A,#00H ;把0赋给A) 其中操作码段是必段的,其他的段是根据不同的指令而不同,操作数段可以只有一个操作数,也可以有两个操作数,有时还会有三个操作数的情况。 在51单片机中,有单字节指令、双字节指令和三字节指令。只要理解了指令占用的这些字节都是用来存放哪些量的,那自然就会判断不同的指令是多少字节指令了。 1、操作码段占用一个字节。 2、8位立即数占用一个字节,16位立即数占用两个字节。 3、8位操作数地址占用一个字节,16位操作数地址占用两个字节。 4、CPU内部的各种寄存器不占用指令字节,如A, B, R0, R1, DPTR等。 现在就可以判断51的指令占用的字节数了: MOV A, R0 ; 这是单字节指令,其中MOV占用一个字节,A和R0是CPU内部寄存器,不占用指令字节。 MOV A, #07H ;这是双字节指令,其中MOV占用一个字节,8位立即数#07H占用一个字节。 MOV DPTR, #0106H ;这是三字节指令, MOV占用一个字节,16位立即数#0106H占用两个字节。 MOV 07H, #07H ;这是三字节指令,MOV占用一个字节,8位地址07H占用一个字节,8位立即数#07H占用一个字节。 关于 BCD 码减数求补的问题 2009-11-23 2:40 有这样一个问题: 汇编程序如下: ORG 0100H MOV R1, #50H MOV R0, #60H CLR C CALL BSUB MOV 40H, A . . . BSUB: MOV A, #9AH SUBB A, @R0 ADD A, @R1 DA A INC R0 INC R1 CPL C RET 问:其中 9AH 的作用是什么,能不能换成别的数! 问题补充:BCD 码减法程序。 ========================================================== 做而论道 回答:     | 五级 2009-8-29 09:58 这是 MCS-51 单片机的汇编语言,很多人都不懂的。 程序实现了 (50H)-(60H)--(40H) 的 BCD 码减法运算;并且对源数据的地址指针进行了修正。 BCD码的运算之后,应(使用 DA A指令)进行十进制调整,将运算结果修正为 BCD 码; 只是 MCS-51 单片机的 DA A 指令只能放在加法之后,它对减法不起作用。 为此,BCD 码的减法必须变换成加法,才能用 DA A 指令进行十进制调整。 借用手表倒拨15分,和正拨45分,效果相同的方法,可将:     (50H) - (60H) 等效变换为:     (50H) + [100 - (60H)] 式中的 100,又等效写成 9AH,不信,你对它 DA A 试试,马上就是 100H,这就是 100 的 BCD码,你说它能写成别的数吗 ? ========================================================== 后记: 上面的回答,并没有得到提问者的青睐,看来还是没有说明白,下面再解释一下。 关于“减数求补”的问题,是 MCS-51 单片机的汇编语言中,特有的问题。 两个 BCD 码相减,如果想要得到 BCD 码形式的结果,就应该进行十进制调整。 但是 MCS-51 单片机的十进制调整指令 (DA A

文档评论(0)

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

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

1亿VIP精品文档

相关文档