8086汇编语言子程序设计实验报告

版权申诉
0 下载量 178 浏览量 更新于2024-08-22 收藏 136KB DOC 举报
"8086汇编语言子程序程序设计文档主要涵盖了8086微处理器中的子程序设计和调试方法,通过一个具体的实验案例来教授如何利用MASM汇编器进行程序开发。实验目的是让学生熟悉子程序的结构和使用,掌握在Debug环境下调试和运行汇编程序的技巧。实验内容包括编写一个计算数组元素之和的子程序,并通过实际操作步骤展示了如何将源代码汇编、链接成可执行文件。" 在8086汇编语言中,子程序是一种模块化编程的手段,它允许我们将重复使用的代码段封装起来,以提高代码的复用性和可维护性。在给出的实验中,学生需要设计一个名为`PROADD`的子程序,该子程序用于计算数组ARY的元素之和。 子程序的结构通常包括以下几个部分: 1. 子程序入口:指定子程序的开始,通常使用`PROC`伪指令定义。 2. 参数传递:子程序可能需要接收参数来进行计算。在这个例子中,数组的地址、元素个数和存储和的地址作为参数隐式传递,通过在主程序中设置DS段寄存器和通过表格存储这些值。 3. 保存现场:子程序可能会修改一些通用寄存器,因此在开始时,需要使用`PUSH`指令保存这些寄存器的当前值,例如AX、CX、SI和DI。 4. 主体代码:子程序的主要计算逻辑,这里使用`LOOP`指令进行循环,逐个累加数组元素。 5. 恢复现场:子程序完成后,使用`POP`指令恢复之前保存的寄存器值。 6. 子程序出口:使用`RET`伪指令返回到调用者,结束子程序执行。 实验步骤涉及了汇编和链接两个阶段: 1. 汇编阶段:使用MASM汇编器将源代码`lab5.asm`转化为目标代码,命令行输入`masm lab5`。 2. 链接阶段:将目标代码与必要的库链接,生成可执行文件,命令行输入`link lab5`。 在Debug环境下,可以使用这个可执行文件进行单步调试,查看寄存器状态,检查内存内容,从而理解子程序的工作机制。 通过这个实验,学习者不仅能够掌握子程序的设计原理,还能了解汇编语言程序的开发流程,包括源代码编写、汇编、链接以及调试。这对深入理解计算机底层工作原理,特别是对操作系统、设备驱动等底层编程领域具有重要意义。