《第6节4 子程序设计.ppt》由会员分享,可在线阅读,更多相关《第6节4 子程序设计.ppt(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、子程序的定义子程序的定义一般过程名同标号一样,具有三种属性,即段属性、偏移地址属性一般过程名同标号一样,具有三种属性,即段属性、偏移地址属性以及类型属性。以及类型属性。子程序的定义是由过程定义伪指令子程序的定义是由过程定义伪指令PROCPROC和和ENDPENDP来完成的。其格式如下:来完成的。其格式如下:过程名过程名 PROCPROC NEAR/FARNEAR/FAR 过程名过程名 ENDPENDP其中其中PROCPROC表示过程定义开始,表示过程定义开始,ENDPENDP表示过程定义结束。过程名是过程表示过程定义结束。过程名是过程入口地址的符号表示。入口地址的符号表示。4.6.4 子程序子
2、程序1.1.子程序的调用与返回子程序的调用与返回 通常将功能相对独立并且在一个或多个程序的不同位置被多次运行的通常将功能相对独立并且在一个或多个程序的不同位置被多次运行的程序段设计为一个子程序。程序段设计为一个子程序。把把延时延时1S的程序设计为子程序的程序设计为子程序.PROC DELAY1S FARMOV BX,1000LP1:PUSHFPOPFLOOP LP1MOV CX,374LP2:DEC BXJNZ LP2RETPUSH BXPUSH CXPUSHFPOP CXPOP BXPOPFPROC ENDP子程序调用指令子程序调用指令:CALL:CALL子程序返回指令子程序返回指令:RET
3、:RETMAIN PROC FAR CALL SUBR1 RETMAIN ENDPSUBR1 PROC NEAR RETSUBR1 ENDP例例4.13 子程序的定义、调用和返回子程序的定义、调用和返回2.子程序设计应注意的问题子程序设计应注意的问题(2)(2)信息保护信息保护(1)(1)参数传递参数传递3.3.子程序举例子程序举例(3)(3)子程序的说明子程序的说明主程序和子程序之间的数据传递称为参数传递。主程序和子程序之间的数据传递称为参数传递。参数传递的方法:参数传递的方法:寄存器传递,存储单元传递,地址表传递,堆栈传递。寄存器传递,存储单元传递,地址表传递,堆栈传递。为了保证由子程序返
4、回主程序后程序执行的正确性,需要将子程序中用为了保证由子程序返回主程序后程序执行的正确性,需要将子程序中用到的寄存器压入堆栈保护,子程序执行完后再恢复。到的寄存器压入堆栈保护,子程序执行完后再恢复。向用户提供文本说明。向用户提供文本说明。例例 如:如:找出一个数据块中的最大数找出一个数据块中的最大数.其中其中,数据块的长度数据块的长度1,并且放在内并且放在内存存(2001H)单元中单元中,而数据块本身是从而数据块本身是从(2002H)单元开始存放的单元开始存放的,最后最后,把把找出的最大值放到找出的最大值放到(2000H)单元中单元中.假定数据都是无符号的字节数据假定数据都是无符号的字节数据.
5、指针指针SI=2001H循环计数器循环计数器CX=SI假设初始最大值假设初始最大值0 AL修改指针修改指针SI SI+1SI(AL)是是SI ALSI SI+1 CX CX+1CX=0?否否是是AL 2000H否否MAX PROC NEARMOV CL,SIINC SIMOV AL,0MOV CH,0LP:CLCCMP SI ,AL JC AAMOV AL,SIAA:INC SILOOP LPMOV 2000H ,ALRETMAX ENDP运行汇编语言程序的步骤运行汇编语言程序的步骤1、用编辑程序建立、用编辑程序建立ASM源文件源文件2、用、用ASMA程序把程序把ASM文件转换成文件转换成OBJ文件文件3、用、用LINK程序把程序把OBJ文件转换成文件转换成EXE文件文件4、用、用DOS命令直接键入文件名就可执行该程序命令直接键入文件名就可执行该程序4.7 汇编语言程序上机过程汇编语言程序上机过程