(47)--3.4.6子程序结构程序设计举例.ppt
《(47)--3.4.6子程序结构程序设计举例.ppt》由会员分享,可在线阅读,更多相关《(47)--3.4.6子程序结构程序设计举例.ppt(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章 MCS-51 单片机的指令系统3.4.6 3.4.6 子程序结构程序设计举例子程序结构程序设计举例子程序结构是单片机模块化程序设计中的一种重要程序结构。在实际应用中,经常会遇到一些带有通用性的问题,如延时处理、字符处理、数值转换以等操作。或者在一个程序中出现了多次相同功能的程序时,如果每次都重写一遍,就会使得整个程序变得冗长,会占用大量的内存。把具有功能相对完整、结构相对独立的而且经常会用到的公用程序按照一定结构写成固定的程序段,当需要时,可以直接调用,这种能够完成一定功能、可以被其它程序调用的公共程序段称为子程序采用子程序结构设计,可以使得程序总体架构更加清晰,简化了程序的逻辑结构,
2、而且还便于分块调试,可有效地提高编程效率。3.4.6 3.4.6 子程序结构程序设计举例子程序结构程序设计举例子程序设计时的注意问题(1 1)每个子程序必须有个名称,叫子程序名。子程序命名时应尽量体现其功能,以便于程序的阅读和维护。子程序名是子程序第一条指令的符号地址。(2 2)主程序通过子程序调用指令实现对子程序的调用。有长调用指令LCALL和绝对调用指令 ACALL。3.4.6 3.4.6 子程序结构程序设计举例子程序结构程序设计举例子程序设计时的注意问题(3 3)明确入口参数与出口参数 子程序是主程序的一部分,在主程序调用时需要传递入口参数给子程序,也就是输入给子程序的数据以及存放的位置
3、等;当子程序执行完毕时,如果需要传回子程序的处理结果时,就是把出口参数传递给主程序,主要有三种传递方法u利用累加器A或工作寄存器Rn传递u利用指针寄存器传递参数u利用堆栈传递参数3.4.6 3.4.6 子程序结构程序设计举例子程序结构程序设计举例子程序设计时的注意问题(4 4)保护现场和恢复现场。现场是指调用子程序时需要用到的寄存器或存储区。现场保护需要用PUSH指令把需要保护的寄存器或者存储单元压入堆栈,在子程序完成后,利用POP指令恢复现场。(5 5)子程序最后一条指令是子程序返回指令RET。(6 6)子程序可以嵌套,就是在一个子程序中调用另一个子程序。由于子程序的每次调用都会需要利用堆栈
4、保存断点,受堆栈深度的限制,子程序的嵌套次数是有限的【例】编程设计一个子程序,实现09数字平方的查表。设变量X的值存放在累加器A中,查表后所求的X2的值放在累加器A中。3.4.6 3.4.6 子程序结构程序设计举例子程序结构程序设计举例方法一(用DPTR作为基址寄存器),程序如下:;子程序名:GetSqaVal1;子程序功能:求09数的平方子程序;子程序入口:(A)=待处理的数;子程序出口:(A)=平方值(结果)ORG0100H;子程序存放位置,可不写。GetSqaVal1:MOVDPTR,#TABsq1;设置表格地址 MOVCA,A+DPTR;开始查表 RET;子程序返TABsq1:DB0,
5、1,4,9,16,25,36,49,64,81;平方表格;子程序名:GetSqaVal1;子程序功能:求09数的平方子程序;子程序入口:(A)=待处理的数;子程序出口:(A)=平方值(结果)ORG0100H;子程序存放位置,可不写。GetSqaVal1:MOVDPTR,#TABsq1;设置表格地址 MOVCA,A+DPTR;开始查表 RET;子程序返TABsq1:DB0,1,4,9,16,25,36,49,64,81;平方表格【例】编程设计一个子程序,实现09数字平方的查表。设变量X的值存放在累加器A中,查表后所求的X2的值放在累加器A中。3.4.6 3.4.6 子程序结构程序设计举例子程序结
6、构程序设计举例方法二(用PC作为基址寄存器),程序如下:;子程序名:GetSqaVal2;子程序功能:求09数的平方子程序;子程序入口:(A)=待处理的数;子程序出口:(A)=平方值(结果)ORG0100H;子程序存放位置,可不写。GetSqaVal2:INCA;修正偏移量A,查表指令执行时PC值指向RET;指令,没有指向表格,A加1后即指向表格MOVCA,A+PC;开始查表RET;子程序返回TABsq2:DB0,1,4,9,16,25,36,49,64,81;平方表格方法二(用PC作为基址寄存器),程序如下:;子程序名:GetSqaVal2;子程序功能:求09数的平方子程序;子程序入口:(A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 47 3.4 子程序 结构 程序设计 举例
限制150内