欢迎来到天天文库
浏览记录
ID:39830683
大小:1.55 MB
页数:60页
时间:2019-07-12
《片机课件MCS-51单片机汇编程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章MCS-51单片机汇编语言程序设计单片机原理及应用内容提要★概述★伪指令★汇编语言程序设计步骤★顺序程序设计★分支程序设计★循环程序设计★位操作程序设计★子程序★小结3.1概述汇编语言是面向机器硬件的语言,要求程序设计者对MCS-51单片机具有很好的“软、硬结合”的功底。MCS-51单片机的编程语言可以是汇编语言也可以是高级语言(如C语言),高级语言编程快捷,但程序长,占用存储空间大,执行慢;汇编语言产生的目标程序简短,占用存储空间小,执行快,能充分发挥计算机的硬件功能。无论是高级语言还是汇编语言,源程序都要转换成目标程序(机器语言)单片机才能执行。两种基本类型:指令语句和伪指
2、令语句(1)指令语句已在第2章介绍每一条指令语句在汇编时都产生一个指令代码——机器代码(2)伪指令语句是为汇编服务的。在汇编时没有机器代码与之对应。MCS-51的汇编语言的四分段格式如下:标号字段操作码字段操作数字段注释字段规则:(1)标号字段和操作字码段之间要有冒号“:”相隔;(2)操作码字段和操作数字段间的分界符是空格;(3)双操作数之间用逗号相隔;(4)操作数字段和注释字段之间的分界符用分号“;”相隔。操作码字段为必选项,其余各段为任选项。补充例1下面是一段汇编语言程序的四分段书写格式标号字段操作码字段操作数字段注释字段START:MOVA,#00H;0→AMOVR1,#10;
3、10→R1MOVR2,#00000011B;3→R2LOOP:ADDA,R2;(A)+(R2)→ADJNZR1,LOOP;R1内容减1不为零,则循环NOPHERE:SJMPHERE基本语法规则:1.标号字段是语句所在地址的标志符号(1)标号后边必须跟以冒号“:”(2)由1~8个ASCII字符组成(3)同一标号在一个程序中只能定义一次(4)不能使用汇编语言已经定义的符号作为标号2.操作码字段是汇编语言指令中唯一不能空缺的部分。汇编程序就是根据这一字段来生成机器代码的。3.操作数字段通常有单操作数、双操作数和无操作数三种情况。如果是双操作数,则操作数之间,要以逗号隔开。(1)十六进制、二
4、进制和十进制形式的操作数表示采用十六进制形式来表示,某些特殊场合才采用二进制或十进制的表示形式。十六进制,后缀“H”。二进制,后缀“B”。十进制,后缀“D”,也可省略。若十六进制的操作数以字符A~F中的某个开头时,则需在它前面加一个“0”,以便在汇编时把它和字符A~F区别开来。(2)工作寄存器和特殊功能寄存器的表示采用工作寄存器和特殊功能寄存器的代号来表示,也可用其地址来表示。例如,累加器可用A(或Acc)表示。也可用0E0H来表示,0E0H为累加器A的地址。(3)美元符号$的使用用于表示该转移指令操作码所在的地址。例如,如下指令:JNBF0,$与如下指令是等价的:HERE:JNBF
5、0,HERE再如:HERE:SJMPHERE可写为:SJMP$4.注释字段必须以分号“;”开头,换行书写,但必须注意也要以分号“;”开头。汇编时,注释字段不会产生机器代码。连接/定位器L51汇编语言源程序汇编器A51符号转换程序OHS51绝对地址目标程序.BINC语言程序浮动地址目标程序编译器C51·HEX图3-1两种语言源程序转换成目标程序目前很多公司将编辑器、汇编器、编译器、连接/定位器、符号转换程序做成集成软件包,用户进入该集成环境,编辑好程序后,只需点击相应菜单就可以完成上述的各步,如WAVE、KEIL,WAVE集成软件的使用见附录。汇编:将汇编语言源程序转换成机器语言目标程
6、序的过程称为汇编。汇编程序:能将汇编语言源程序转换成机器语言目标程序的系统软件称为汇编程序。汇编的方法:汇编的方法有两种1.手工汇编:人工查指令表,查出程序中每条指令对应的机器代码。早期的计算机使用。2.机器汇编:用计算机中的汇编程序对用户源程序进行汇编。用机器汇编要提供给汇编一些信息,遵循汇编程序的一些约定。这些由伪指令指定。1)确定程序中每条汇编语言指令的指令机器码2)确定每条指令在存储器中的存放地址3)提供错误信息4)提供目标执行文件(*.OBJ/*.HEX)和列表文件(*.LST)地址机器码源程序ORG2000H2000H7830MAIN:MOVR0,#30H2002HE6M
7、OVA,@R0…在MCS-51汇编语言源程序中应有向汇编程序发出的指示信息,告诉它如何完成汇编工作,这是通过使用伪指令来实现的。也称为汇编程序控制命令。只有在汇编前的源程序中才有伪指令。经过汇编得到目标程序(机器代码)后,伪指令已无存在的必要,所以“伪”体现在汇编时,伪指令没有相应的机器代码产生。一、汇编语言指令类型宏汇编功能:将需要反复多次执行的程序段定义成一个宏指令名(宏定义)。编程时,可在程序中使用宏指令名来替代被定义的程序段(宏调用)。3.2伪指令
此文档下载收益归作者所有