实验指导4分析和总结

实验4子程序与多模块程序设计一、实验目的1、掌握子程序的定义、调用及返回方法;2、熟悉主程序与子程序间几种参数传递方法;3、深刻理解子程序的调用与返回对堆栈的影响;4、熟悉多模块程序设计方法,了解多模

4 实验子程序与多模块程序设计 一、实验目的 、掌握子程序的定义、调用及返回方法; 1 、熟悉主程序与子程序间几种参数传递方法; 2 、深刻理解子程序的调用与返回对堆栈的影响; 3 、熟悉多模块程序设计方法,了解多模块间参数传递方法。 4 二、使用的工具软件及环境 软件包 TASM5.0 4) 三、实验内容(详见实验报告 、上机调试程序,指出程序中尚存在的错误,并分析该程序要实现的功能。 1 、上机运行程序,该程序实现求某数据区中无符号数据最大值,观察程序执行时堆栈的变化,并画出以下个堆栈 25 状态图。指令执行之前;指令执行之后;保护现场之前;恢复 (1)CALLMAX2)CALLMAX3)(4) (( 现场之后;执行指令之后。 (5)POPSMAX 、阅读并运行程序,回答问题。 3 、编写程序:在主程序中从键盘输入一个以飞”结尾的字符串,存储在变量中,子程序把字符串中的大写字 4BUF 母改为小写字母,小写字母改为大写字母,最后在主程序中显示该字符串。要求:子程序和主程序在不同的源程序 文件中。 四、实验指导 1 、子程序设计要点 ● 子程序的定义 ● 子程序的调用和返回 ● 保护现场和恢复现场 ● 主程序与子程序之间的信息传递 子程序的定义伪指令 (1) 子程序名 PROC[NEAR/FAR] 子程序名 ENDP ①伪指令和必须成对出现。 PROCENDP ② 子程序定义写在代码段内,子程序体中至少包含一条返回指令。 RET ③ (默认)说明该子程序只能被同一个代码段里的程序调用,称为近程子程序。近程子程序调用和返回时 NEAR 只需要改变寄存器的值,寄存器的值保持不变。 IPCS 说明子程序能够被不同代码段的程序调用,也能被同一代码段的程序调用,称为远程子程序。远程子程序调 FAR ④ 用和返回时,需要同时改变和寄存器的值。 CSIP ⑤可将主程序定义为型过程,看作是调用的一个过程。 FARDOS 子程序的调用与返回指令 2) ( 子程序名 CALL 段内直接调用 段内间接调用 CALLREG16/MEM16 子程序名 CALLFARPTR 段间直接调用 段间间接调用 CALLMEM32 返回指令 RET

腾讯文库实验指导4分析和总结