2022年单元汇编语言程序设计( .pdf
《2022年单元汇编语言程序设计( .pdf》由会员分享,可在线阅读,更多相关《2022年单元汇编语言程序设计( .pdf(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单元四汇编语言程序设计一、学习目标与要求1、了解汇编语言程序结构2、掌握分支程序、循环程序、子程序、查表程序的设计方法3、了解常用伪指令及其使用方法二、本章重点内容1、单片机程序设计中常用伪指令伪指令不是真正的指令,它只向编译程序提供编译信息,而不产生机器代码。常用伪指令有:(1)标号等值伪指令EQU 格 式:标号: EQU 表达式指令的含义为本语句的标号等值于表达式,亦即将表达式值赋予标号。这里的标号和表达式是必不可少的。(2)数据存储说明伪指令数据存储说明伪指令的作用是将数据存储在程序存储器单元中。 定义字节数据伪指令DB 格 式:标号: DB 表达式或表达式串定义字数据伪指令DW 格 式
2、:标号: DW 表达式或表达式串(3)程序起始地址伪指令ORG 格 式:ORG 表达式(4)汇编结束伪指令END 格 式 1:标号: END 表达式格 式 2:标号: END 或者 END 2、程序设计(1)分支程序条件转移指令是指分支程序产生的原因,条件转移指令执行时,如果转移条件(yes)程序转向一个分支,如果不转移条件(no)程序转向是一个分支。(2)循环程序任何计算机程序都不可能是无限长的顺序程序,程序总是根据不同的条件不断循环的转移执行的。将循环程序从结构上分成循环初始化,循环体,循环修改和循环结构四个部分,是为了便于理解。实际应用时应视具体问题灵活应用。名师资料总结 - - -精品
3、资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - - - (3)子程序采用子程序结构的程序设计最大的好处是优化了程序设计,将可局部独立处理的问题编写成子程序,可供主程序反复多次调用,它将复杂的运标或检制问题,细分成许多小的事件进行处理,这种主程序调用子程序的结构形式被称为模块式的结构形式。(4)查表程序数学变量与函数之间的关系是一种确定的关系,可以用数学表达式表示,计算机编程时,可根据变量及与函数的关系式计算出函数值。但有的变量与函数之间的关系不能用数学表达式表示,
4、如七段数码显示代码(函数)与显示字符(变量)就是这样。它们之间只能用表格形式建立函数关系,单片机程序设计中的查表程序就是解决这类问题。当然有确定数学关系的数学变量也可以用查表程序求函数值。三、本章内容的前后联系1、与前面内容的联系(1)单片机指令系统是学习本章的基础,也就是说,要想编好程序首先必须学好指令。(2)单片机的内部结构也是本章的基础,单片机的工作是建立在程序存储的基础上,但是程序的执行还必须依赖单片机的硬件资源,这就涉及到了单片机的内部结构。2、与后面内容的联系单片机的汇编语言程序设计,是单片机应用系统程序设计的基础,所以,在学习本章时,应该以应用系统程序开发为目的。认真掌握典型结构
5、化程序设计方法。四、学习方法指导1、单片机汇编语言程序设计,对初学者来说,不是很容易掌握,特别是它的编程和单片机内部资源密切相关,所以,在学习编程之前,一定要掌握单片机的内部资源及其单片机结构。2、为了真正理解程序执行过程,必须先理解指令的执行过程,所以,学习本章时首先应该建立一个概念:程序是指令的集合。3、要注意一开始学习编程就养成一个比较好的习惯:先画流程图、后写指令;程序按结构化设计。五、典型例题分析【例题4.1 】拆字程序。将一个字节的两个BCD码十进制数拆开并变成相应的ASCII码,并存入两个RAM 单元中。设两个 BCD码(一个字节)已存入在内部RAM 的 30H单元中,变换后的A
6、SCII 码分别存放在 31H 和 32H 单元,且高位BCD码的 ASCII 码的 ASCII 码存于31H 单元。数字09 的ASCII 为 30H39H ,完成拆字转换只需将一个字节的两个BCD码拆开存放在另两个单元的低4 位,并在其高4 位赋以 0011 即可。程序段清单如下:MOV R0,#32H ;将 32H单元地址送R0名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - MOV R0,#00H ;32H单元清 0 MO
7、V A,30H ;将 30H单元中的 BCD送 A XCHD A, R0;将低位 BCD码送 32H单元ORL 32H ,#30H ;完成低位BCD码转换SWAP A ;将高位 BCD码交换到低位ORL A,#30H ;完成高位 BCD码转换MOV 31H,A ;将高位 BCD的 ASCII 码存入 31H 上述程序段完成了将一个字节的BCD码转换成两个ASCII 码的功能。共需占用15 个程序存储器字节单元,用9 个机器周期执行完毕。【例 4.2 】双字节加法程序段。设被加数存放在内部矛盾RAM的 31H、32H单元,低位字节在前,加数存入于34H、35H单元(低字节在前),结果和存放于31
8、H、32H、33H单元中。其程序段清单如下;STRT :PUSH A ;将 A内容进栈保护MOV R0,#31H ;将地址码送R0和 R1MOV R1,#34H MOV 33H,#00H ;将 33H单元清 0,存放和的最高字节数MOV A, R0;两低字节数相加ADD A , R1MOV R0,A ;低字节和存于31H单元INC R0;地址数分别加1 INC R1MOV A, R0;连用低位进位进行高字节数ADDC A, R1;相加MOV R0,A ;高字节和存于32H单元INC R0;R0指针指向 33H单元MOV A,#00H ;清 A为 0 ADDC A,#00H ;求高字节和的进位M
9、OV R0,A ;将高字节进位存于33H单元POP A ;恢复 A原内容【例题4.3 】由累加器A 在动态运行中给出的结果值选择对应的转移指令,其对应关系为:(A)=0,转向分反处理程序0 (A)=1,转向分支处理程序1 (A)=n,转向分支处理程序n 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - 一般转移指令均无条件转移指令,而AT89S52有两条无条件转移指令:AJMP 和 LJMP 。前者为双字节指令,后者为三字节指令,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年单元汇编语言程序设计 2022 单元 汇编语言 程序设计
限制150内