- 3
- 0
- 约2.09万字
- 约 84页
- 2019-07-20 发布于四川
- 举报
§2.11 汇编语言程序设计方法 四.子程序设计和参数传递方法 1.子程序的基本结构 保护现场:保护子程序将要用到的有关寄存器的内容,使得子程序调用更方便安全。一般可将需要保护的内容压入堆栈,或采用改变工作寄存器区。 程序主体:是子程序为完成有关功能而编制的程序段。 恢复现场:若保护现场是用压入堆栈,则恢复现场要注意先进后出。 返回:采用返回指令将程序返回到原先调用子程序的地方。 ? 开始 保护现场 程序主体 恢复现场 返回 §2.11 汇编语言程序设计方法 三.子程序设计和参数传递方法 2.子程序的参数 入口参数:子程序入口地址,被处理数据存放的位置,影响哪些寄存器。 出口参数:有关结果数据的存放位置,有关指针的内容。 3.用工作寄存器或累加器来传递参数 例5.7 将十六进制数的ASCII码转换成十六进制数。 1)根据ASCII码与16进制数之间的关系,程序框图如下:图6-6 2)被转换的数据在R0中。 3)编制程序 0~9 ? 30H~39H;A~F ? 41H~46H ? §2.11 汇编语言程序设计方法 ASCH:PUSH PSW PUSH ACC CLR C MOV A, R0 SUBB A,#30H CJNE A,#10,$+3 JC AH10 SUBB A,#07 AH10: MOV R0,A POP ACC POP PSW RET ? §2.11 汇编语言程序设计方法 三.子程序设计和参数传递方法 4.用存储器来传递参数 例5.8 将(R0)和(R1)指出的内部RAM中两个3字节无符号数相加,结果送(R0)指出的内部RAM中。 : R0— R1— 入口参数: (R0)和(R1)分别指向加数和被加数的低位字节的内存地址。 出口参数: (R0)指向结果的高位字节的内存地址。 §2.11 汇编语言程序设计方法 编制程序如下: NADD: PUSH ACC PUSH PSW MOV R7, #3 CLR C NADD1: MOV A, @R0 ADDC A, @R1 MOV @R0, A DEC R0 DEC R1 DJNZ R7, NADD1 INC R0 POP PSW POP ACC RET ? §2.11 汇编语言程序设计方法 三.子程序设计和参数传递方法 5.用堆栈来传递参数 例5.9 将一位十六进制数转换成ASCII码 入口参数:调用该子程序前,已将一位16进制数压入堆栈。 出口参数:将转换好了的ASCII码存放在原来16进制数的堆栈位置。 HASC: MOV R0, SP DEC R0 DEC R0 XCH A, @R0 ANL A, #0FH ADD A, #2 MOVC A, @A+PC XCH A, @R0 RET DB ‘0123456789’ DB ‘ABCDEF’ ? 7 PCL PCH (SP) (SP+1) (SP+1) §2.11 汇编语言程序设计方法 三.子程序设计和参数传递方法 5.用堆栈来传递参数 例5.10 把内部RAM中50H,51H的双字节十六进制数转换成4位ASCII码,存放于(R1)指向的4个内部RAM单元。数据存放的方法如下图所示: ? 50H 51H (R1) §2.11 汇编语言程序设计方法 编制程序如下:利用例9
您可能关注的文档
- Flash制作实例-贺卡的设计.pptx
- 项目地主题的提炼与演绎.ppt
- 第四章人文旅游资源.ppt
- [建筑制图课件]结构施工图.ppt
- 第2章-基础与地下室.ppt
- 第3章-连接-6钢结构.ppt
- 基础与地下室新.ppt
- 2017充电桩发展趋势.pptx
- 2016充电桩发展趋势.pptx
- 工程结构-第三章.ppt
- 七年级语文上册期末模拟试卷1(解析版).docx
- 七年级语文上册期末模拟试卷1(原卷版).docx
- 七年级语文上册期末模拟试卷2(原卷版).docx
- 七年级语文上册期末模拟试卷2(解析版).docx
- 期末测试卷(二)(解析版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(三)(解析版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(二)(原卷版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(三)(原卷版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(一)(原卷版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(一)(解析版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
原创力文档

文档评论(0)