欢迎来到天天文库
浏览记录
ID:59018620
大小:703.50 KB
页数:45页
时间:2020-09-26
《第3章 MCS-51单片机汇编语言程序设计ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章MCS-51单片机汇编语言程序设计单片机原理、接口及应用内容提要★概述★伪指令★汇编语言程序设计步骤★顺序程序设计★分支程序设计★循环程序设计★位操作程序设计★子程序★小结3.1概述MCS-51单片机的编程语言可以是汇编语言也可以是高级语言(如C语言),高级语言编程快捷,但程序长,占用存储空间大,执行慢;汇编语言产生的目标程序简短,占用存储空间小,执行快,能充分发挥计算机的硬件功能。无论是高级语言还是汇编语言,源程序都要转换成目标程序(机器语言)单片机才能执行。连接/定位器L51汇编语言源程序汇编器A51符号
2、转换程序OHS51绝对地址目标程序.BINC语言程序浮动地址目标程序编译器C51·HEX图3-1两种语言源程序转换成目标程序目前很多公司将编辑器、汇编器、编译器、连接/定位器、符号转换程序做成集成软件包,用户进入该集成环境,编辑好程序后,只需点击相应菜单就可以完成上述的各步,如WAVE、KEIL,WAVE集成软件的使用见附录。汇编:将汇编语言源程序转换成机器语言目标程序的过程称为汇编。汇编程序:能将汇编语言源程序转换成机器语言目标程序的系统软件称为汇编程序。汇编的方法:汇编的方法有两种1.手工汇编:人工查指令表,查
3、出程序中每条指令对应的机器代码。早期的计算机使用。2.机器汇编:用计算机中的汇编程序对用户源程序进行汇编。用机器汇编要提供给汇编一些信息,遵循汇编程序的一些约定。这些由伪指令指定。1)确定程序中每条汇编语言指令的指令机器码2)确定每条指令在存储器中的存放地址3)提供错误信息4)提供目标执行文件(*.OBJ/*.HEX)和列表文件(*.LST)地址机器码源程序ORG2000H2000H7830MAIN:MOVR0,#30H2002HE6MOVA,@R0…1.机器指令:指令系统中的全部指令。每条机器指令都有对应的机器代
4、码,可以被CPU执行。2.伪指令:汇编控制指令,没有指令代码,只用于汇编过程,为汇编程序提供汇编信息。一、汇编语言指令类型宏汇编功能:将需要反复多次执行的程序段定义成一个宏指令名(宏定义)。编程时,可在程序中使用宏指令名来替代被定义的程序段(宏调用)。3.2伪指令宏定义过程:宏调用过程:…宏指令名实际参数…宏指令名实际参数宏指令名MACRO形式参数…;被定义的程序段ENDM二.伪指令常用伪指令及功能:1.起始指令ORGnn功能:定义程序或数据块的起始地址。指示此语句后面的程序或数据块以nn为起始地址,连续存放在程序
5、存储器中。指令地址机器码源程序ORG2000H2000H7830MAIN:MOVR0,#30H2002HE6MOVA,@R0…ORG3000H3000H23TAB:DB23H,100,‘A’3001H643002H412.字节定义标号:DB(字节常数,或字符或表达式)功能:指示在程序存储器中以标号为起始地址的单元里存放的数为字节数据(八位二进制数)。例如LN:DB32,’C’,25H,-1;LN~LN+2地址单元依次存放20H,43H,25H,FFH地址数据LN20LN+143LN+225LN+3FF3.字定义标号
6、:DW(字常数或表达式)作用:指示在程序存储器中以标号为起始地址的单元里存放的数为字数据(即16位的二进制数),例如:GH:DW1234H,5678H,08GH1234GH+25678GH+400085.等值指令标号EQU(数值表达式)表示EQU两边的量等值,用于为标号或标识符赋值。例如:X1EQU2000HX2EQU0FH…MAIN:MOVDPTR,#X1;DPTR=2000HADDA,#X2;A=A+0FH4.保留字节标号:DS(数值表达式)作用:指示在程序存储器中保留以标号为起始地址的若干字节单元,
7、其单元个数由数值表达式指定。例如L1:DS32;从L1地址开始保留32个存储单元。6.位定义标号BIT[位地址]作用:同EQU指令,不过定义的是位操作地址。例如AICBITP1.1。7.汇编结束END作用:指示源程序段结束。END指令放在程序的最后。A51汇编程序还有一些其它的伪指令,列在教材表3-1中,以备查阅。汇编语言程序设计步骤一.确定方案和计算方法二.了解应用系统的硬件配置、性能指标三.建立系统数学模型,确定控制算法和操作步骤四.合理分配存储器单元和了解I/O接口地址五.编制源程序1.按功能设计程序,明确各
8、程序之间的相互关系2.用流程图表示程序结构和功能开始1YN?3.程序中用注释说明指令在程序中的作用,方便阅读、调试和修改顺序程序设计例3-1编程将外部数据存储器的000EH和000FH单元的内容相换。常用程序结构顺序程序、分支程序、循环程序、子程序000EH000FH000EH000FH000EH000FH000EH000FH分析:外部数据存储器的数据操作
此文档下载收益归作者所有