微机原理第13次8系4-3子程序.ppt_第1页
微机原理第13次8系4-3子程序.ppt_第2页
微机原理第13次8系4-3子程序.ppt_第3页
微机原理第13次8系4-3子程序.ppt_第4页
微机原理第13次8系4-3子程序.ppt_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、汇编语言程序结构 汇编语言程序设计方法 子程序设计技术 上机步骤与调试方法,第4章 汇编语言程序设计,MOV AX,4000H MOV DS,AX MOV SI,0000H MOV CX,30 XOR AX,AX GOON:ADD AL,SI ADCAH,00H INC SI DEC CX JNZ GOON MOV DX,AX HLT,功能:在内存40000H开始的顺序30个单元中存放着8位无符号数,求它们的和放在DX中。,4. 汇编语言程序设计举例1,汇编语言程序结构 汇编语言程序设计方法 子程序设计技术 上机步骤与调试方法,第4章 汇编语言程序设计,(调用程序),CALL 子程序名,RET

2、 子程序名 ENDP,主程序,子程序名 PROC,(被调用的程序),1.主程序与子程序,2.子程序的定义,定义格式: 子程序名 PROC 类型;子程序定义开始伪指令,RET 子程序名 ENDP ;子程序定义结束伪指令,子程序体,一个子程序名一但定义,就具有以下三个属性,段地址,段内偏移地址,类型,FAR,NEAR(可缺省),子程序第一条指令的地址,2.子程序的定义,3.子程序调用与返回指令,段内子程序调用与返回,;主程序 CODE SEGMENT ASSUME CS:CODE START:,;子程序SUB1 SUB1 PROC NEAR,RET ; SUB1 ENDP CODE ENDS EN

3、D START,CALL NEAR PTR SUB1,可以省略,IP(SP),SP(SP)+2,SP(SP)-2,(SP)返回地址(IP),IP(IP)+16位DISP,;主程序 CODEM SEGMENT ASSUME CS:CODEM START: CALL FAR PTR SUB2 MOV AH,4CH INT 21H CODEM ENDS,;子程序 CODES SEGMENT ASSUME CS:CODES SUB2 PROC FAR RETF ;也可以写成RET SUB2 ENDP CODES ENDS END START,段间子程序调用与返回,主程序在调用子程序时,应为子程序提供运

4、算所需的初始数据,而子程序返回时,应将运算结果以一定的方式提交给主程序。这些问题,通常称为主程序与子程序之间的参数传递。 主程序给子程序提供的初始数据或获得初始数据的信息称为子程序的入口参数,而子程序返回给主程序的结果称为子程序的出口参数。,4.子程序与主程序之间参数的传递,利用寄存器传递参数 ,利用存储器单元传递参数,利用堆栈传递参数,主程序与子程序之间的参数传递通常有以下三种方法:,4.子程序与主程序之间参数的传递,5.子程序说明文件,子程序编好以后是为了提供给其它程序调用的,因此,它必须以一定的格式说明自己的功能和使用方法,也就是要建立子程序的说明文件。说明文件的内容大致可以包括以下几个

5、方面:,4.5 子程序设计技术,(1) 子程序名; (2) 子程序完成的功能; (3) 子程序的入口参数及其传递方式; (4) 子程序的出口参数及其传递方式; (5) 子程序用到的寄存器; (6) 典型例子。,4.5 子程序设计技术,6.子程序的嵌套,子程序的嵌套是指子程序本身再次调用子程序 嵌套调用过程中逐层调用及按层返回由堆栈保证,7.信息的保护与恢复,在子程序设计时,肯定要用到一些寄存器,而这些寄存器在主程序也用到了。我们期望这些寄存器的值在子程序调用与返回后,保持原来主程序中的值不变,这就需要对这些寄存器的值进行保护。而保护这些寄存器值的方法是利用堆栈操作。,信息的保护与恢复方法有以下两种:,1.在子程序中进行,2.在主程序中进行,7.信息的保护与恢复,在子程序中对信息进行保护与恢复的方法,子程序名 PROC PUSH AX PUSH BX PUSH CX ;信息的保护 POP CX POP BX POP AX ;信息的恢复 RET 子程序名 ENDP,7.信息的保护与恢复,在主程序中对信息进行保护与恢复的方法,PUSH AX PUSH BX PUSH CX ;信息的保护 CALL 子程序名 POP CX POP BX POP AX ;信

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论