- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章汇编胡须程序设计
第3章 概 述 MCS-51单片机的编程语言可以是汇编语言也可以是高级语言(如C语言),高级语言编程快捷,但程序长,占用存储空间大,执行慢;汇编语言产生的目标程序简短,占用存储空间小,执行快,能充分发挥计算机的硬件功能。无论是高级语言还是汇编语言,源程序都要转换成目标程序(机器语言)单片机才能执行。? 汇编语言源程序设计步骤 3.2 伪 指 令 常用伪指令及功能: 1. 起始指令 ORG nn 功能:定义程序或数据块的起始地址。指示此语句后面的程序或数据块以nn为起始地址,连续存放在程序存储器中。 指令地址 机器码 源程序 ORG 2000H 2000H 78 30 MAIN: MOV R0,#30H 2002H E6 MOV A,@R0 … 3. 字定义 标号:DW (字常数或表达式) 作用:指示在程序存储器中以标号为 起始地址的单元里存放的数为字数据 (即16位的二进制数), 例如:GH :DW 1234H,5678H,08 5. 等值指令 标号 EQU(数值表达式) 表示EQU两边的量等值,用于为标号或标识符赋值。例如: X1 EQU 2000H X2 EQU 0FH … MAIN: MOV DPTR,#X1 ; DPTR=2000H ADD A,#X2 ; A=A+0FH 6. 位定义 标号 BIT [位地址] 作用: 同EQU指令,不过定义的是位操作地址。 例如 AIC BIT P1.1。 常用程序结构—— 顺序程序、分支程序、循环程序、子程序 例3-1 编程将外部数据存储器的000EH和000FH单元的内容相换。 分析: 外部数据存储器的数据操作只能用MOVX指令,且只能和A之间传送,因此必须用一个中间环节作暂存,设用20H单元。用R0、R1指示两单元的低八位地址,高八位地址由P2指示。编程过程如下: ORG 0000H MOV P2, #0H ;送地址高八位至P2口 MOV R0, #0EH ;R0= 0EH MOV R1, #0FH ;R1=OFH MOVX A, @R0 ;A=(000EH) MOV 20H, A ;(20H)=(000EH) MOVX A, @R1 ;A=(000FH) XCH A, 20H ; A=(000EH),(20H)=(000FH) MOVX @R1, A MOV A, 20H MOVX @R0, A ;交换后的数送各单元 SJMP $ END 例3-3 分解压缩式BCD码,使其成为非压缩式BCD码。 3.4.2 多分支程序(散转程序) 1. 利用转移地址表实现转移 例3-7 根据R3的内容转向对应的程序,R3的内容为0~n,处理程序的入口符号地址分别为PR0~PRn (n128)。 分析:将PR0—PRn入口地址列在表格中,每一项占两个单元,PRn在表中的偏移量为2n,因此将R3的内容乘2即得PRn在表中的偏移地址,从偏移地址2n和2n+1两个单元分别取出PRn的高八位地址和低八位地址送DPTR寄存器,用JMP @A+DPTR指令(A先清零)即转移到PRn入口执行。 这里设PR0-PRn地址 PR0 EQU 0110H ;用伪指令定义PRn的具体地址 PR1 EQU 0220H PR2 EQU 0330H ORG 0000H MOV A,R3 ;R3→A ADD A, ACC ;A*2 MOV DPTR,#TAB PUSH ACC MOVC A,@A+DPTR ;取地址表中高字节 MOV B,A ;暂存于B INC DPL POP ACC MOVC A,@A+DPTR ;取地址表中低字节 MOV DPL,A MOV DPH,B ;DPTR为表中地址 CLR A
原创力文档


文档评论(0)