第4章子程序结构(精品).ppt
《第4章子程序结构(精品).ppt》由会员分享,可在线阅读,更多相关《第4章子程序结构(精品).ppt(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、子程序结构第六章第六章汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织在在程程序序设设计计中中,我我们们会会发发现现一一些些多多次次无无规规律律重重复复的的程程序序段段或或语语句句序序列列。解解决决此此类类问问题题一一个个行行之之有有效效的的方方法法就就是是将将它它们们设设计计成成可可供供反反复复调调用用的的独独立立的的子子程程序序结结构构,以便在需要时调用。以便在需要时调用。在汇编语言中,子程序又称过程。在汇编语言中,子程序又称过程。调用子程序的程序称调用子程序的程序称为主调程序或主程序为主调程序或主程序。一、子程序的概念汇编语言程序设计 计算机系统
2、教研室张洁第第2 2章章 80868086计算机组织计算机组织 二、过程定义、过程调用过程名过程名 PROC PROC 类型类型 RETRET 过程名过程名 ENDP ENDP 1.定义2.调 用CALL CALL 过程名过程名一般过程名同标号一样,具有三种属一般过程名同标号一样,具有三种属性,即段属性、偏移地址属性以及类性,即段属性、偏移地址属性以及类型属性型属性汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织N E N E A R A R 子子程程序序书书写写形形式式CODE SEGMENTCODE SEGMENT ASSUME MAIN PROC
3、 FARMAIN PROC FAR CALL SUB1CALL SUB1 RET RET SUB1 PROC NEARSUB1 PROC NEAR CALL SUB2CALL SUB2 RETRET SUB2 PROC NEARSUB2 PROC NEAR RETRET SUB2 ENDPSUB2 ENDP SUB1 ENDPSUB1 ENDP MAIN ENDPMAIN ENDPCODE ENDSCODE ENDS 汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织调调 用用 图图 示示CALL SUB1CALL SUB2RETRET主程序子程序SUB
4、1子程序SUB2汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织F F A A R R 子子程程序序书书写写形形式式CODE1 SEGMENTCODE1 SEGMENT ASSUME MAIN PROC FARMAIN PROC FAR CALL SUBCALL SUB RETRET MAIN ENDPMAIN ENDPCODE1 ENDSCODE1 ENDSCODE2CODE2SEGMENTSEGMENT ASSUME SUB PROC FARSUB PROC FAR RETRET SUB ENDPSUB ENDPCODE2 ENDS CODE2 E
5、NDS 汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织CALLCALL指令指令-段内调用段内调用直接寻址直接寻址间接寻址间接寻址CALL proc-name CALL disp16 IP入栈;IP IP+偏移量 例:例:CALL SUB1 寻址方式寻址方式格格 式式操操 作作注:注:段内调用,段内调用,CS不变不变 CALL r16/m16 IP入栈;IP(r16)/(m16)例:例:CALL BX CALL WORD PTR BX汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织CALLCALL指令指令-段间
6、调用段间调用直接寻址直接寻址间接寻址间接寻址CALL FAR proc-name CS入栈;IP入栈;CS 过程的段地址;IP 过程的偏移地址。例:例:CALL SUB1 CALL SUB1 寻址方式寻址方式格格 式式操操 作作注:注:DWORD PTR表明内存操作数属性为双字,用于段间调用表明内存操作数属性为双字,用于段间调用 CALL mem32 CS入栈;IP入栈;IP (EA+1,EA)CS (EA+3,EA+2)例:例:CALL DWORD PTR BX CALL DWORD PTR BX 远远过程名过程名汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组
7、织计算机组织RET RET 指令指令段内:RETRET expIP出栈 IP出栈 SP SP+exp 段间:RETRET exp IP出栈 CS出栈 IP出栈 CS出栈 SP SP+exp 返回类型返回类型格格 式式操操 作作注:返回类型由调用类型定汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织信息的保护与恢复信息的保护与恢复例如:若子程序SUB1中改变了寄存器AX,BX,CX,DX的值,则可采用如下方法 保护和恢复现场。POP DXPOP CXPOP BX ;恢复现场恢复现场POP AXRET ;返回断点处返回断点处SUB1 ENDPSUB1 PR
8、OCPUSH AXPUSH BX PUSH CX;保护现场保护现场PUSH DX 汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织主程序与子程序参数传递方式主程序与子程序参数传递方式(1)寄存器法(2)约定单元法(3)堆栈法汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织软延时:指利用CPU执行指令需要耗费一定时间的特点实施的延时,常用减1循环来实现。例:8088CPU,主频4.77M,每个时钟周期为:1/4.77M=0.21s。循环指令LOOP,当CX不为零时,执行循环转移分支,占用17个时钟周期;当CX为零
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 章子 程序结构 精品
限制150内