汇编语言程序设计实验报告
本实验报告的主要目的是为了熟悉汇编语言程序设计的基本概念和操作步骤,包括汇编语言程序的编辑、汇编、连接和调试。实验中,我们使用了MASM汇编语言编译器和DEBUG调试工具,学习了汇编语言程序的设计和调试过程。
实验目的:
* 熟悉汇编语言程序的格式和设计
* 熟悉汇编语言源程序的编辑和汇编、目标模块的连接和可执行程序的调试
* 熟悉80x86CPU的根本指令系统
* 熟悉x86汇编语言的根本结构和程序设计与调试
实验要求:
* 使用Windows操作系统并具有命令提示符操作界面的计算机
* 系统内安装有汇编语言编程环境
* 在开始实验之前,复习教科书的相关内容,并预先写出相应的源程序
实验内容:
* 使用MASM汇编语言编译器对源程序进行汇编,生成.obj文件和.lst文件
* 使用LINK连接生成.exe文件
* 使用DEBUG调试程序
实验步骤:
1. 执行masm.exe对源程序进行汇编,生成.obj文件和.lst文件
2. 执行连接Link生成.exe文件
3. 利用DEBUG调试程序
4. 分别用T命令和G命令执行程序
思考题:
1. 记录程序处于初始执行程序状态时的存放器的值和单步执行过程中存放器的值,哪些存放器的值发生了变化?变化的原因是什么?
答:尚未执行时:存放器变化:AX、CX、DX原因是:执行了MOV指令
2. 存放器IP的变化有什么意义?
答:IP存放器的内容为下一条将要执行的指令的偏移地址
3. 用T命令跟踪执行程序直到“INT 21H”指令,内存单元X2和X4的逻辑地址是什么?存放器CX和内存单元X4的最终值是什么?
答:X2和X4的逻辑地址:CX:7286X4:〔4〕
4. 为什么需要程序中的前两条指令mov ax,@data和mov ds,ax,它们的作用是什么?如果缺少这两条指令程序将会如何?
答:这两条指令用于将数据段的地址传送给DS寄存器,否则程序将无法正确地访问数据段
5. 使用简化结构的点命令描述,上述程序还可作如何修改?
答:可以使用简化的段定义格式编写源程序,例如使用.model small和.stack 100h等指令
答复题:
1. 画出数据段每个单元数据内容
答:数据段的内容如下:
X1 db ?,1,23H
X2 db $-x1,'a','b','cd ef'
X3 dw 10,100,1000,10000
X4 db 2 DUP (3 DUP (1,2,3))
2. 写出程序运行后AX、BX、CX、DX的值
答:AX=4c00H BX=X2 CX=X3+4 DX=X3+4
实验总结:
通过本实验,我们学习了汇编语言程序设计的基本概念和操作步骤,包括汇编语言程序的编辑、汇编、连接和调试。我们也学习了使用MASM汇编语言编译器和DEBUG调试工具,熟悉了x86汇编语言的根本结构和程序设计与调试。