微机实验一、二指导书.doc
文本预览下载声明
实验一 上机练习
实验目的:
1、掌握用编辑软件编辑程序文本的方法。在DOS环境下,熟练掌握用MASM5.0宏汇编程序对ASM文件进行编译、连接等操作步骤。
2、熟悉用DEBUG调试程序。
实验原理:
1、DEBUG是专门为汇编语言设计的一种调试工具,它通过步进,设置断点等方式为汇编语言程序员提供了非常有效的调试手段。它的功能包括以下几个方面:直接输入,更改,跟踪,运行汇编语言源程序;观察操作系统的内容;查看ROM BIOS的内容;察更改RAM内部的设置值;扇区或文件的方式读写软盘数据。
调用了DEBUG程序,就会出现一个短横提示符,用户就可以在这一短横后输入DEBUG程序的命令。有些DEBUG命令会显示一个内存地址并产生一个作为提示符的冒号。在这些提示符后,用户可以输入一个新值以改变所显示位置原来的值。如果用户不输入一个新值而是按下回车或CTRL+C,那么原来的值不会改变。DEBUG总是用四位十六进制数表示地址,用两位数表示十六进制数据。如果输入的命令中出现了错误,DEBUG将在下一行对着错误的位置标记出来,例如:
-s100 d 12
^Error
DOS的提示符下,可如下键入Debug启动调试程序:
DEBUG??[路径\文件名]?[参数1]?[参数2]
Debug后可以不带文件名,仅运行Debug程序;需要时,再用N和L命令调入被调试程序。命令中可以带有被调试程序的文件名,则运行Debug的同时,还将指定的程序调入主存;参数1/2是被调试程序所需要的参数。
在Debug程序调入后,根据有无被调试程序及其类型相应设置寄存器组的内容,发出Debug的提示符“-”,此时就可用Debug命令来调试程序。
运行Debug程序时,如果不带被调试程序,则所有段寄存器值相等,都指向当前可用的主存段;除SP之外的通用寄存器都设置为0,而SP指示当前堆栈顶在这个段的尾部;IP=0100h;状态标志都是清0状态。
运行Debug程序时,如果带入的被调试程序扩展名不是.EXE,则BX.CX包含被调试文件大小的字节数(BX为高16位),其他同不带被调试程序的情况。
运行Debug程序时,如果带入的被调试程序扩展名是.EXE,则需要重新定位。此时,CS?:?IP和SS?:?SP根据被调试程序确定,分别指向代码段和堆栈段。DS=ES指向当前可用的主存段,BX.CX包含被调试文件大小的字节数(BX为高16位),其他通用寄存器为0,状态标志都是清0状态。
Debug的命令都是一个字母,后跟一个或多个参数:?? 字母?[参数]
命令的使用中注意:
①?字母不分大小写; ②?只使用16进制数,没有后缀字母; ③?分隔符空格或逗号只在两个数值之间是必须的,命令和参数间可无分隔符; ④?每个命令只有按了回车键后才有效,可以用Ctrl+Break中止命令的执行; ⑤?命令如果不符合Debug的规则,则将以“error”提示,并用“^”指示错误位置。
许多命令的参数是主存逻辑地址,形式是“段基地址?:?偏移地址”。其中,段基地址可以是段寄存器或数值;偏移地址是数值。如果不输入段地址,则采用默认值,可以是缺省段寄存器值。如果没有提供偏移地址,则通常就是当前偏移地址。
对主存操作的命令还支持地址范围这种参数,它的形式是:“开始地址?结束地址”(结束地址不能具有段地址),或者是:“开始地址?L字节长度”。显示命令DD(Dump)命令显示主存单元的内容,它的格式如下(注意分号后的部分用于解释命令功能,不是命令本身):
???????? D [地址]???????;显示当前或指定开始地址的主存内容???????? D [范围]???????;显示指定范围的主存内容
例如,显示当前(接着上一个D命令显示的最后一个地址)主存内容:
左边部分是主存逻辑地址,中间是连续16个字节的主存内容16进制数,以字节为单位,右边部分是这16个字节内容的ASCII字符显示,不可显示字符用点“.”表示。一个D命令仅显示“8行×16个字节”(80列显示模式)内容。
再如:? -d 100????????????? ;显示数据段100h开始的主存单元??????????? -d cs:0????????????? ;显示代码段的主存内容??????????? -d2f0 L20???????????;显示ds:2f0h开始的20h个主存数据E(Enter)命令用于修改主存内容,它有两种格式:
????E?地址?????? ???;格式1,修改指定地址的内容 ????E?地址?数据表????;格式2,用数据表的数据修改指定地址的内容
格式1是逐个单元相继修改的方法。例如,键入“e?ds:100”,Debug显示原来内容,用户可以直接输入新数据,然后按空格键显示下一个单
显示全部