实验一 初级程序的编写与调试
一、实验目的
1、熟练掌握的DEBUG常用命令,学会用DEBUG调试程序;
2、深入了解数据在存储器中的存取方法,及堆栈中数据的压入与弹出;
3、掌握各种寻址方法以及简单指令的执行过程。
二、实验内容
1、设堆栈指针SP=2000HAX=3000HBX=5000H,请编一程序段将AX的内容和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间单元,用DEBUG调试程序进行汇编与调试。
2、设DS=当前段地址,BX=0300HSI=0002H,请用DEBUG的命令将存储器偏移地址300H—304H连续单元顺序装入0AHOBH0CH0DH0EH。在DEBUG状态下送入下面程序,并用单步执行的方法,分析每条指令源地址的形成过程。当每条数据传送完毕时,AX
中的内容是什么。
程序清单如下:
MOV  AXBX
汇编语言指导书MOV  AX0304H
MOV  AX[0304H]
MOV  AX[BX]
MOV  AX0001[BX]
MOV  AX[BX][SI]
MOV  AX0001[BX][SI]
HLT
AX=0002H,编一个程序段将AX的内容乘10,要求用移位的方法完成。
三、实验要求
1、实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,对程序结果的分析等。
2、本实验要求在PC机上完成。
3、本实验只要求在DEBUG调试程序状态下进行,包括汇编程序,调试程序,执行程序。
编程提示:
1)、实验内容1
将两个寄存器内容进行交换时,必须有一个中间寄存器才能进行内容的交换。如果用堆栈作为中间存储单元,必须遵循先进后出的原则。
2)、实验内容2
[1] 其中数据段寄存器中的段地址为进入DEBUG状态后系统自动分配的段地址。
[2] SIBX的初值可在DEBUG的状态下,用R命令装入,也可以在程序中用指令来完成。
[3] T命令执行程序,可进行单步跟踪执行,每执行一条指令就可以看到各寄存器的状态,也可用R命令直接调出寄存器,来检查各寄存器内容是否正确。
[4] 在执行程序前,可用E命令将偏移地址300H—304H送入0AH0BH0CH0DH
3)实验内容3
[1] 用移位的方法完成某些乘法运算,是较为常见的方法,操作数左移一位为操作数乘2运算。
[2] 算式2×10的程序流程图如下:
       
[3] 程序执行可用DEBUGG命令,也可用T命令单步跟踪执行。
四、实验报告
1、程序编写
  将各实验内容按要求编写出实验程序。
2、按实验要求调试各程序,并将调试结果记录于各语句后,附以相应说明。
实验二 程序的汇编与调试
一、实验目的
1、熟练掌握汇编程序的上机过程,将汇编源程序编译后生成可执行文件(.exe文件);
2、通过源程序汇编与连接过程加深理解汇编程序编写过程中各段的组成及原理;
3、学会使用DEBUG调试可执行程序;
二、实验要求
1、熟悉源程序的书写格式,并已编写出完整的汇编源程序;
2、拥有DOS的操作环境的计算机,并已安装有汇编系统盘,系统盘上应包括如下文件:
EDIT  文本编辑程序文件
MASM  宏汇编程序文件
LINK  连接程序文件
DEBUG  汇编调试工具文件
四、实验原理
汇编源程序如果需要按编程目的执行,必须形成可执行文件(.exe文件)。
将汇编语言的源程序变为可执行文件需经过编辑、汇编(MASMASM)、连接(LINK)三个过程,过程之间的操作步骤及原理如图示:
汇编就是把汇编语言编写的源程序编译(汇编)成机器语言的目标程序。而汇编程序的方法可使用小汇编程序(ASM)也可以用宏汇编程序(MASM),由于宏汇编程序不但可以代替ASM,而且可以汇编具有宏定义的汇编源程序,因此我们在汇编程序时通常使用宏汇编程序(MASM)。
将汇编语言源程序用宏汇编程序编译后,可形成三个文件:
一个是扩展名为.OBJ的目标文件,在该文件中,将源程序的操作码部分变为机器码,但地址操作数是可浮动的相对地址,而不是实际地址,因此需经LINK连接文件进行连接才能形成可执行文件(.exe文件)。
第二个文件是列表文件,扩展名为.LST,它把源程序和目标程序进行列表,以供检查程序用。可使用TYPE命令显示该文件,即TYPE  filename.LST
第三个文件是交叉索引文件,扩展名为.CRF,它是一个对源程序所用的各种符号进行前后对照的文件。
以上三个文件中,目标文件是必须产生的,而其它两个文件在需要时给予命令就可以产生,对连接和执行汇编程序无直接关系。如果在汇编时不需要产生后两个文件(.LST.CRF),调用汇编程序时可用分号结束。
在汇编过程中,如果发现源程序中有语法错误,则提示出错信息,指出是什么性质的错误,错误类型,最后列出错误的总数。之后可进入编辑状态,对源程序进行修改,修改完毕,再进行汇编,直到汇编通过为止。
连接程序LINK是把一个或多个独立的目标程序模块装配成一个可重定位的可执行文件,扩展名为.EXE文件。此外还可以产生一个内存映像文件,扩展名为.MAP.MAP文件实际上连接程序的列表文件,它给出了每个段的地址分配情况及长度,如果不需要该文件,在连接时,可用分号结束后续询问。如显示该文件,使用TYPE命令,即TYPE  filename.MAP
三、实验内容
1、将已编写好的汇编源程序按步骤进行编辑、汇编、连接,形成可执行文件后,运行程序,直至得出正确的结果。
2、将形成的可执行文件,使用DEBUG进行调试和观察。
四、实验报告
1、写出汇编程序的上机过程,在过程中所形成的必须的文件是哪些。
2、根据列表文件,察看段信息汇总表,指出该程序由哪些段组成,每段的名称、定位类型,组合类型(对连接程序,每段与其它段的关系);察看符号汇总表,指出源程序中用户定义的符号名、类型值和所在段。
3、根据内存映像文件,源程序中定义了哪些段,每段的起始地址、终止地址、长度等信息。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。