工业用微型计算机实验一

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一DEBUG命令的使用及汇编语言源
程序的调试步骤
1. DEBUG命令的使用
一、实验目的
1.练习简单的DOS命令(DIR, CD,MD ,CLS)
2.学习使用DEBUG程序的常用命令。

(R,D,E, A,U,T, G,Q)
3.了解8086内存地址空间分配
二、预备知识
1.DOS常用命令练习
在Windows 98、Windows2000、Windows XP 中启动DOS,单击“开始”菜单中的“运行”命令,打开“运行”对话框,在文本框中输入“command”后,单击“确定”按钮。

进入DOS方式后,如果显示为窗口方式,可以按下Alt+Enter 键将窗口变换为全屏幕方式。

(1)要更换当前目录到硬盘的其它分区,应该输入盘符然后回车。

比如要到D盘,那么就输入D:。

(2)cd命令,改变缺省目录或显示当前目录。

(3)dir 命令,查看电脑中的文件。

其中凡后缀为exe 、com 或bat 的文件都是可以直接执行的。

这些以exe 为后缀的文件叫可执行文件;以com 为后缀的文件叫命令文件;以bat 为后缀的文件叫批处理文件。

如果我们要执行这些文件,只需在提示符下敲入文件基本名然后回车即可,不需输入文件后缀。

(4) del 命令,删除文件。

要删除当前目录中的某个文件,输入del 空格再加上文件名就可以了。

如:要删除当前目录中的a.asm 文件。

(5)copy 命令,复制文件。

复制就是原来的文件并没有任何改变,重新产生了一个内容和原来文件没有任何差别的文件。

copy 命令的格式: copy 源文件名 目的文件名 无论源文件还是目的文件

1 如果不指明驱动器名,即为当前驱动器; ○
2 如果不指明目录,即为当前目录; ○
3 如果不指明文件名,则为相同文件名。

回到根目录
2.掌握DEBUG程序的常用命令。

DEBUG是DOS、Windows都提供的实模式(8086方式)程序的调试工具。

使用它,可以查看CPU各种寄存器中的内容、内存的情况和在机器码级跟踪程序的运行。

(1)进入DEBUG
DEBUG是在DOS方式下使用的程序。

在进入DEBUG之前,应先进入到DOS方式。

这个程序在Windows98中通常在C:\WINDOWS\COMMAND下,在Windows2000或WindowsXP中通常在D:\WINDOWS\system32下。

由于系统指定了搜索路径,所以在任何一个路径中都可以运行。

C>DEBUG [D:] [PATH] [FILENAME[.EXT]] [PARM1] [PARM2]
其中,文件名是被调试文件的名字(可以省略)。

[D:]指定驱动器,[PA TH]为
路径,[FILENAME[.EXT]]为文件名,[PARM1]为命令参数
(2)用?命令查看DEBUG中能使用那些命令以及命令的格式
下面将讲述与汇编语言学习密切相关的几个命令:
○1用R(寄存器)命令查看、改变CPU寄存器的内容
格式:R [register]
●如果在没有参数的情况下使用,则r 命令显示所有寄存器的内容以及寄存器存储区域
中的标志。

●如果指定了寄存器名称,将显示以十六进制标记表示的寄存器的16 位值,并将冒号显
示为提示符。

如果要更改包含在寄存器中的值,除非键入新值并按ENTER 键;否则,请按ENTER 键返回Debug 提示符。

●如果键入f 字符代替寄存器名,Debug 将每个标记的当前设置显示为两字母代码,然
后显示Debug 提示符。

要更改标志的设置,请从下表中键入适当的两字母代码:
可以按任何顺序键入新的标志值。

不需要在这些值之间留出空格。

要停止r 命令,请按ENTER 键。

任何没有指定新值的标志保持不变。

Debug 的默认设置
在启动Debug 时,会将段寄存器设置到空闲内存的低端,指令指针IP设置为0100h,清除所有标志,并且将其余寄存器设置为零,除了被设置为FFEEh 的SP之外。

在所有寄存器的下方,Debug还列出了CS:IP所指向的内存单元处缩放的机器码,并将它翻译为汇编指令。

可以看到上图中CS:IP所指向的内存单元为0C15:0100,此处存放的机器码为98,对应的汇编指令为CBW。

○2用D(转储)命令查看内存中的内容
格式:D [range]
指定要显示其内容的内存区域的起始和结束地址,或起始地址和长度。

如果不指定range,Debug 程序将从以前d 命令中所指定的地址范围的末尾开始显示128 个字节的内容。

当使用d 命令时,Debug 以两个部分显示内存内容:十六进制部分(每个字节的值都用十六进制格式表示)和ASCII 码部分(每个字节的值都用ASCII 码字符表示)。

每个非打印字符在显示的ASCII 部分由句号(.) 表示。

每个显示行显示16 字节的内容,第8 字节和第9 字节之间有一个连字符。

每个显示行从16 字节的边界上开始。

○3用E(键入)命令改写内存中的内容
可以按十六进制或ASCII 格式键入数据。

以前存储在指定位置的任何数据全部丢失。

格式:E address [list]
●如果在没有指定可选的list 参数的值情况下指定address 的值,Debug 将显示地址和
内容,在下一行重复地址,并等待您的输入。

此时,可以执行下列操作之一:
替换字节值。

为此,请在当前值后键入新值。

如果您键入的值不是有效的十六进制值,或该值包含两个以上的数字,则Debug 不会回显无效或额外的字符。

进入下一个字节。

为此,请按SPACEBAR(空格键)。

要更改该字节中的值,请在当前值后键入新值。

如果按SPACEBAR(空格键)时,移动超过了8 位界限,
Debug 程序将显示新的一行并在行首显示新地址。

返回到前一个字节。

为此,请按HYPHEN 键(-)。

可以反复按HYPHEN 键(-) 向后移动超过多个字节。

在按HYPHEN 时,Debug 开始新行并显示当前地址和字
节值。

停止执行e 命令。

为此,请按ENTER 键。

在任何字节位置都可以按ENTER。

●如果指定list 参数的值,随后的e 命令将使用列表中的值替换现有的字节值。

如果发
生错误,将不更改任何字节值。

List 值可以是十六进制字节或字符串。

使用空格、逗号或制表符来分隔值。

必须将字符串包括在单或双引号中。

○4用A(汇编)命令以汇编指令的形式在内存中写入机器指令
该命令从汇编语言语句创建可执行的机器码。

所有数值都是十六进制格式,必须按一到四个字符输入这些数值。

在引用的操作代码(操作码)前指定前缀记忆码。

格式:A [address]
指定键入汇编语言指令的位置。

对address 使用十六进制值,并键入不以“h”字符结尾的每个值。

如果不指定地址,a 将在它上次停止处开始汇编。

可以使用段的替代记忆码cs:、ds:、es: 和ss:。

○5用U(反汇编)命令查看内存中机器码的含义
反汇编字节并显示相应的原语句,其中包括地址和字节值。

反汇编代码看起来象已汇编文件的列表。

格式:U [range]
range 指定要反汇编代码的起始地址和结束地址,或起始地址和长度。

如果在没有参数的情
况下使用,则u 命令分解20h 字节(默认值),从前面u 命令所显示地址后的第一个地址开始。

○6用T(跟踪)命令执行内存中的机器码
格式:T [=address] [value]
使用Debug的T命令可以执行一条或多条命令。

●简单地使用T命令,可以执行CS:IP指向的指令。

●可以用 =address 指定当前在内存中要开始执行的程序地址,用value指明执行的几条
指令。

○7用G(转向)命令运行当前在内存中的程序
格式:G [=address] [breakpoints]
=address 指定当前在内存中要开始执行的程序地址。

如果不指定将从CS:IP 寄存器中的当前地址开始执行程序。

breakpoints 指定可以设置为g 命令的部分的 1 到10 个临时断
点。

○8用Q(退出)停止Debug 会话,不保存当前测试的文件
当键入q 以后,控制返回到DOS 的命令提示符。

三、实验任务
1.用DIR命令查看当前工作目录的文件。

2.用命令 CD进入下一级子目录,用命令 MD建立子目录。

3.用命令 CLS清屏。

4.用D命令查看8086/8088 CPU在开机后执行的第一条指令。

(8086/8088 CPU在开机后
执行的第一条指令在内存FFFF:0H开始处。


5.用命令D查看DS:200~22F和F000:200~22F两内存块内容,用命令E将字符“A”
分别填入这两个内存块,比较填入前后结果,了解可读写内存RAM和只读内存ROM 的区别。

6.PC机主板上的ROM中写有一个生产日期,在内存FFF00H~FFFFFH的某个单元中,
请找到这个生产日期并试图改变它。

7.向内存从B8100H开始的单元中填写数据,如:
-e B810:0000 01 01 02 02 03 03 04 04
填写不同的数据观察产生的现象;改变填写的地址,观察产生的现象
提示:在8086PC机内存地址空间分配:00000-9FFFF是RAM随机存储器地址空间;A0000-BFFFF 是显存地址空间;C0000-FFFFF是ROM只读存储器地址空间。

四、实验报告
1.记录CPU在开机后执行的第一条指令。

2.说明可读写内存RAM和只读内存ROM的区别。

3.记录任务5、6、7的产生的现象,说明原因。

4.针对实验目的认真做小结。

相关文档
最新文档