欢迎来到天天文库
浏览记录
ID:38510070
大小:327.00 KB
页数:35页
时间:2019-06-13
《单片机课件第七章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第七章汇编语言程序设计7-1程序设计概述7-2程序设计基础7-3程序设计举例7-1程序设计概述汇编语言源程序:用汇编语言编写完成特定功能的有序指令序列。汇编语言程序设计的基本步骤1.设计任务的分析、确定算法和思路确定方案和计算方法了解应用系统的硬件配置、性能指标。建立系统数学模型,确定控制算法和操作步骤。2.程序总体设计和流程图确定程序结构、数据类型、资源分配、参数计算等。7-1程序设计概述3.编写源程序合理分配存储器单元和了解I/O接口地址。按功能设计程序,明确各程序之间的相互关系。用注释行说明程序,便于阅读和修改调
2、试和修改。4.汇编调试源程序汇编语言程序到机器语言程序的转换过程称为汇编。手工汇编:人工查指令表汇编。用于设计短小程序或调试程序的场合。机器汇编:用汇编程序进行汇编。7-1程序设计概述5.汇编的主要任务:确定程序中每条汇编语言指令的指令机器码。确定每条指令在存储器中的存放地址。提供错误信息。提供目标执行文件(*.OBJ/*.HEX)和列表文件(*.LST)。汇编语言程序设计方法:基本结构由顺序、分支、循环、子程序、查表程序等结构化的程序块有机组合而形成。模块化程序设计,划分功能模块自顶向下,逐步求精7-1程序设计概述源
3、程序使用机器汇编要考虑汇编程序的约定常数的表示:十进制数:20十六进制数:87H,0F0H二进制数:01011001B字符:‘H’字符串:“Hello”。汇编语言指令类型机器指令:指令系统中的全部指令,每条指令有对应的机器代码。7-1程序设计概述伪指令:汇编控制指令,仅提供汇编信息,没有指令代码。宏指令:宏汇编功能:将需要多次反复执行的程序段定义成一个宏指令名(宏定义),编程时,可在程序中使用宏指令名来替代一段程序(宏调用)。7-1程序设计概述常用伪指令及其功能:ORG—起始地址指令:[格式]ORG<表达式>[功能]指
4、明程序和数据块起始地址。指令地址机器码源程序ORG2000H2000H7830MAIN:MOVR0,#30H2002HE6MOVA,@R0…ORG3000H3000H23DB23H,100,‘A’3001H643002H417-1程序设计概述END—结束汇编指令。[格式]<标号:>END<表达式>[功能]指明源程序结束。[说明]一个源程序只能有1个,在整个程序结束处。表达式可以没有。区别在于汇编结束后立即转向表达式指定的地址开始执行,否则立即停机。例:START:……ENDSTART起始地址指令:7-1程序设计概述DB
5、—定义字节型常数指令。[格式]<标号:>DB<表达式或表达式串>[功能]将表达式指定的字节数据存入标号开始的连续存储单元中。[说明]标号为可选项,为存储数据的起始地址表达式可以是数值表达式、ASCII码字符串、字节数据、字节数据串(不超过80个)例:DB12H,100,‘A’7-1程序设计概述DW—定义字型常数指令。[格式]<标号:>DW<表达式或表达式串>[功能]将表达式指定的字数据存入标号开始的连续存储单元中。[说明]按高字节在前,低字节在后的顺序例:DW1234H,5678H7-1程序设计概述DS—定义存储区。[
6、格式]<标号:>DS<表达式>[功能]以标号的值为首地址保留表达式指定的连续存储单元,已备另用。EQU—等值。为标识符赋值。[格式]<标识符>EQU<表达式>[功能]指定标识符的值为表达式。X1EQU2000HX2EQU0FH…MAIN:MOVDPTR,#X1;X1为立即数ADDA,X2;X2为直接地址7-1程序设计概述BIT—位地址符号命令[格式]<标识符>BIT<位地址>[功能]指定标识符的值为位地址。A0BIT10HB0BITP1.0…MAIN:CPLA0ANLC,B07.2程序设计基础和举例简单(顺序)程序
7、结构程序走向只有一条路径。例压缩式BCD码分解成为单字节ASCII码。MOVR0,#32H;32H单元地址送R0MOV@R0,#00H;32H单元清0MOVA,30H;取BCD码XCHDA,@R0;低位BCD码送32HORL32H,#30H;转换为ASCIISWAPA;十位换到低半字节ORLA,#30H;转换为ASCIIMOV31H,A;存入31H7.2.2分支程序设计分支程序程序的流向有两个获两个以上的出口,根据条件进行选择确定。由条件转移指令构成程序判断框部分。单分支程序一个判断决策框,程序有两条出路。两种分支结
8、构:条件满足?N影响条件Y处理段条件满足?N影响条件Y处理1处理27.2.2分支程序设计例求双字节补码。将内部ram中addr1和addr1+1单元的双字节读出取补。存入addr2和addr2+1中,高位存于高位地址单元。结果为0N低字节取补Y高字节取反高字节求补7.2.2分支程序设计多重分支程序多次使用条件转移指令,形成两个以上
此文档下载收益归作者所有