实验一: 调试工具DEBUG的使用

合集下载

实验一 熟悉使用调试工具软件DEBUG

实验一 熟悉使用调试工具软件DEBUG

实验一熟悉使用调试工具软件DEBUG实验一熟悉使用调试工具软件debug实验一熟悉调试工具软件调试编写汇编语言时,如果源程序中存在语法或格式上的错误,在汇编和链接过程中都可以被发现并得以纠正。

但是如果在源程序中存在逻辑错误时,就只能通过调试来纠正了。

常用的调试工作软件是debug。

debug提供了修改寄存器和内存单元内容的命令,可以方便地修改寄存器及内存单元的内容,为调试和修改程序带来的方便。

1.调试启动在windows环境下,点击开始栏里的运行窗,输入debug。

2、debug的主要命令这里只介绍几个常用的调试命令。

有关其他命令,请参阅相关文献。

1)r命令R命令用于查看和修改寄存器的值。

在提示符“-”下输入命令r,debug将会显示出当前所有寄存器和标志位的状态。

在r后输入相关寄存器名称,以修改相关寄存器值。

2) D命令d命令作用:显示内存区域的内容。

在提示“-”时执行命令d,以观察当前存储单元的内容。

用命令d显示内存区域的内容时,最左边是内存的起始地址,中间以十六进制的形式显示内存值,最右边是以ascii码的形式显示内存值。

每行最多显示16个字节的内容。

命令D可以接受或忽略参数。

当调试启动时,将DS的值设置为X。

当省略该参数时,命令d的显示内容从X:100开始,每次显示128字节。

将来在没有参数的情况下执行命令d时,debug将根据最后一个位置继续显示。

带参数时debug能够显示指定地址范围的内容。

带参数的方式有三种:方式一:d[起始位置]。

debug从起始位置开始显示128个字节的内容。

在提示符“-”下执行命令d1af5:100。

观看命令执行结果。

模式二:D[开始位置][结束位置]。

调试从开始位置开始,并一直显示到结束位置。

在提示“-”时执行DDS:1001ff命令。

观察命令执行结果。

方法3:D[起始位置][l长度],长度由l参数标记。

Debug显示从起始位置开始的指定长度的内容。

在提示“-”时执行DDS:100l10命令。

实验一 DEBUG调试工具的熟悉

实验一 DEBUG调试工具的熟悉

实验1 DEBUG的使用及程序调试方法一、实验目的通过本实验使学生掌握调试工具DEBUG的使用方法、理解汇编指令、存储单元和寄存器等有关概念,能对简单的汇编语言程序进行调试。

二、实验原理DEBUG是DOS、WINDOWS都提供的实模式(8086方式)程序的调试工具,在DOS 方式下工作。

使用它可以读写、传送、查看CPU各种寄存器中的内容、显示内存单元的内容、设置程序起始执行地址或断点、机器码级跟踪程序的运行。

用DEBUG编程简单、方便和直观,可以直接查看程序的执行情况,便于熟悉和理解指令,掌握基本编程技巧。

DEBUG只使用十六进制表示数据(十六进制后面不加H),且对字母的大小写不敏感。

常用到的DEBUG功能:✧用DEBUG的R命令查看、改变CPU寄存器的内容✧用DEBUG的D命令查看内存中的内容✧用DEBUG的E命令修改内存中的内容✧用DEBUG的U命令将内存中的机器指令翻译成汇编指令✧用DEBUG的T命令执行一条机器指令✧用DEBUG的A命令以汇编指令的格式在内存中写入一条机器指令三、实验内容(1)学习调试工具DEBUG的使用方法,熟悉DEBUG常用命令的功能和用法。

(2)利用DEBUG调试简单的汇编语言程序,体会汇编指令的功能、寄存器的作用、存储单元地址与内容的概念和作用,以及程序的执行。

四、实验方法与步骤1.DEBUG的进入与退出DEBUG是在DOS方式下使用的程序。

在进入DEBUG前,应先以从WINDOWS 2000/XP中进入DOS方式(进入的是虚拟8086模式的DOS)。

方法:选择【开始】菜单中的【运行】命令,打开【运行】对话框,在文本框中输入“cmd”后,单击【确定】按钮或按下键盘上的【Enter】键。

在命令提示符后输入”debug”后按下键盘上的【Enter】键。

2. 显示寄存器命令 R功能:用于查看和改变CPU寄存器的内容格式:R [<寄存器>]说明:当R命令后面不指定寄存器时,显示所有寄存器的内容例1-1 显示所有寄存器的内容-rAX=0200 BX=0000 CX=0000 DX=0041 SP=FFEE BP=0000 SI=0000 DI=0000 DS=138A ES=138A SS=138A CS=138A IP=0100 NV UP EI PL NZ NA PO NC 138A:0100 B241 MOV DL,41例1-2 修改寄存器的内容-r axAX 0200100-rAX=0100 BX=0000 CX=0000 DX=0041 SP=FFEE BP=0000 SI=0000 DI=0000DS=138A ES=138A SS=138A CS=138A IP=0100 NV UP EI PL NZ NA PO NC 138A:0100 B241 MOV DL,41例1-3 用RF命令可以显示和修改标志寄存器FR中的标志位,无论修改哪一位标志位,只需要键入该标志位的表示符号(如表1.1所示),并且标志位值的键入顺序可任意。

实验一、DEBUG的使用方法

实验一、DEBUG的使用方法

实验一、DEBUG的使用DEBUG是为汇编语言设计的一种调试工具,它通过单步、设置断点等方式为汇编语言程序员提供了非常有效的调试手段。

一、DEBUG程序的调用在Windows XP中启动DEBUG程序,可单击“开始”按钮,依次选择“所有程序”、“附件”、“命令提示符”,在DOS的提示符下,键入DEBUG并按回车键。

或者单击“开始”按钮,选择“运行”,在打开的“运行”对话框中输入“DEBUG”并按回车键。

在DEBUG程序调入后,将出现提示符-,此时就可用DEBUG命令来调试程序。

二、DEBUG的主要命令1、显示存储单元的命令D(DUMP),格式为:_D[address]或_D[range]例如,按指定范围显示存储单元内容的方法为:-d100 12018E4:0100 c7 06 04 02 38 01 c7 06-06 02 00 02 c7 06 08 02 G...8.G.....G... 18E4:0110 02 02 bb 04 02 e8 02 00-CD 20 50 51 56 57 8B 37 ..;..h..M PQVW.718E4:0120 8B其中0100至0120是DEBUG显示的单元内容,左边用十六进制表示每个字节,右边用ASCII字符表示每个字节,·表示不可显示的字符。

这里没有指定段地址,D命令自动显示DS段的内容。

如果只指定首地址,则显示从首地址开始的80个字节的内容。

如果完全没有指定地址,则显示上一个D命令显示的最后一个单元后的内容。

2、修改存储单元内容的命令有两种。

·输入命令E,有两种格式如下:第一种格式可以用给定的内容表来替代指定范围的存储单元内容。

命令格式为:-E address [list]例如,-E DS:100 F3 'XYZ'8D其中F3,'X','Y','Z'和8D各占一个字节,该命令可以用这五个字节来替代存储单元DS:0100到0104的原先的内容。

实验一Debug程序的使用

实验一Debug程序的使用

湖北科技学院计算机科学与技术学院《微机接口技术》实验报告学号: 124221031 姓名:李亮亮实验题目: Debug程序的使用实验报告指导老师:范建军实验日期: 2014.11.21一、实验目的1.学习使用DEBUG调试命令。

2.学习用DEBUG调试简单程序。

3.通过程序验证码制及其对标志位的影响。

4.通过调试熟悉和掌握个寄存器的作用与特点。

二、实验内容用DEBUG调试简单程序。

三、实验仪器微机一台四、实验步骤1.由DOS进入DEBUG调试环境。

(1)C:>DEBUG 将调试程序装入内存注意:当机器控制权由DOS成功地转移给调试程序后,将显示“-”号,它是DEBUG 的状态提示符,表示可以接受调试子命令了。

(2)-R显示CPU中各寄存器当前初始内容,请记录下列各项:AX=0000BX=0000CX=0000DX=0000BP=0000SI=0000DI=0000 DS=073F ES=073F SS=073F SP=00FD CS=073F IP=0100如图所示:FLAG寄存器中的8个标志位状态值是:OF DF IF SF ZF AF PF CF0 0 1 0 0 0 0 0说明:1)此时,调试工作区的四个段值相同,指向同一起点,表明公用一个64KB空间;2)SS:SP指向堆栈顶单元,SP为FFFE或FFEE,正好是本段的最高可用地址,表明堆栈自动使用最高地址,栈区由底向上生长;3)CS:IP为约定的调试工作区地点(IP=0100),可由此装入待调试程序代码,或汇编键入的程序小段,工作区由低址往下使用;4)DEBUG用符号给出标志寄存器中8个标志位的当前状态,其含义如下表所示。

标志位含义‘1’的对应符号‘0’的对应符号OF溢出OV有NV无DF方向DN递减UP递增IF中断EI允许DI禁止SF符号NG负PL正ZF全零ZR零NZ非零AF辅助进位AC有NA无PF奇偶性PE偶PO奇CF进位CY有NC无(3)结束程序,返回DOS。

实验一 调试工具DEBUG的使用

实验一 调试工具DEBUG的使用

实验一调试工具DEBUG的使用1.1 实验目的(1)学习如何在Windows的命令模式下启动DEBUG。

(2)掌握DEBUG的常用基本命令。

(3)学习如何使用DEBUG查看CPU和内存以及进行跟踪调试。

1.2 实验设备及软件环境装有DOS系统及MASM6.X的微机一台。

1.3 预备知识1 什么是DEBUG?Debug是DOS、Windows都提供的实模式(8086方式)程序的调试工具。

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

2 常用的Debug命令及其含义3 启动DEBUG(1)打开Windows命令窗口选择“开始”→“运行”→输入“cmd”命令(2)启动DEBUG在命令窗口中启动DEBUG,将显示连接符“-”,这时可输入各种DEBUG命令。

(3)关于使用命令的几点说明:●在提示符“-”下才能输入命令,在按“回车”键后,该命令才开始执行;●命令是单个字母,命令和参数的大小写可混合输入●可用F1、F2、F3、Ins、De l、→等编辑键来编辑本行命令●当命令出现语法错误时,将在出错位置显示“^Error”●在DEBUG中使用的数都是以十六进制来表示的1.4 实验内容1 R命令作用:查看、改变CPU寄存器的内容(1)显示所有寄存器之中的内容:输入R我们重点关注AX、BX、CX、DX、CS及IP寄存器的内容,其他寄存器SP、BP、SI、DI、ES、SS及标志寄存器先不予理会。

此外,并列出了CS:IP所指向的内存单元处所存放的机器码,并将它翻译为汇编指令。

(2)改变寄存器中的内容:输入R AX在提示符“:”后输入1111,即可将AX的值设置为1111。

在输入R命令,查看修改后的寄存器值。

练习:(1)用R命令修改IP的值,并查看此时CS:IP的指向,存放的机器码以及对用的汇编指令;(2)用R命令修改CS的值,并查看此时CS:IP的指向,存放的机器码以及对用的汇编指令;2 D命令作用:查看指定范围内的内存中的内容(1)直接输入D命令DEBUG将输出3部分内容,查看执行结果。

实验一 调试程序DEBUG的使用方法

实验一 调试程序DEBUG的使用方法
进一步学习功能稍微复杂的程序设计及子程序设计方法
实验内容:编制程序
实现从键盘输入有符号十进制数子程序
子程序从键盘输入一个有符号十进制数
负数用"-"引导
正数直接输入或者用"+"引导
在主程序中给出输入的数的个数为10
输入的数存储到以array开始的10个字空间中
要求完成程序编制及调试
并用DEBUG观察运行结果
实验报告内容
实验题目:
实验目的:
实验内容:
程序清单
实验四 键盘控制发音程序
实验目的:通过编程对PC机中的8253和8255进行控制
db 100 dup(0)
stack ends
code segment 'code'
assume cs:code,ds:data,ss:stack
start proc far
push dx
mov ax,0
push ax
2):用D命令观察程序运行之前DS:0000处开始前20字节的内容并作记录
3: 用G命令从程序开始处运行到程序结束前一条指令
再用D命令观察DS:0000处开始的前20字节的内容
并作记录
并据此说明程序对数据段中的数据进行了哪些操作
改变按键后
计算机扬声器将按照新的频率发声
连续按不同的键
将一直能改变发音频率
直到按回车键退出该程序
实验报告内容
实验题目:
实验目的:
实验内容:
问题回答:所编制的汇编语言程序是如何对8253和8255进行控制的?各选择了什么工作方式?
并用DEBUG调试

实验一 DEBUG的启动及其基本命令的使用

实验一  DEBUG的启动及其基本命令的使用

实验一DEBUG的启动及其基本命令的使用一.实验目的:掌握DEBUG 的基本命令及其功能二.实验内容:DEBUG是专门为汇编语言设计的一种调试工具,它通过步进,设置断点等方式为汇编语言程序员提供了非常有效的调试手段。

1、DEBUG程序的启动在DOS提示符下,可键入命令:C>DEBUG[d:][path][文件名][ 参数1][参数2]其中文件名是被调试文件的名称,它须是执行文件(EXE),两个参数是运行被调试文件时所需要的命令参数,在DEBUG程序调入后,出现提示符“-”,此时,可键入所需的DEBUG命令。

在启动DEBUG时,如果输入了文件名,则DEBUG程序把指定文件装入内存。

用户可以通过DEBUG的命令对指定文件进行修改、显示和执行。

如果没有文件名,则是以当前内存的内容工作,或者用命名命令和装入命令把需要的文件装入内存,然后再用DEBUG的命令进行修改、显示和执行。

2、DEBUG的主要命令(1)汇编命令A,格式为:-A[地址]该命令从指定地址开始允许输入汇编语句,把它们汇编成机器代码相继存放在从指定地址开始的存储器中。

(2)反汇编命令U,有两种格式:1)-U[地址]该命令从指定地址开始,反汇编32个字节,若地址省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。

2)-U范围该命令对指定范围的内存单元进行反汇编,例如:-U 04BA:0100 0108或–U 04BA:0100 L9此二命令是等效的。

(3)运行命令G,格式为:-G [=地址1][地址2[地址3。

]]其中地址1规定了运行起始地址,后面的若干地址均为断点地址。

(4)追踪命令T,有两种格式:1)逐条指令追踪:-T[=地址]该命令从指定地址起执行一条指令后停下来,显示寄存器内容和状态值。

2)多条指令追踪:-T[=地址][值]该命令从指定地址起执行n条命令后停下来,n由[值]确定。

(5)显示内存单元内容的命令D,格式为:-D[地址]或-D[范围](6)修改内存单元内容的命令E,它有两种格式:1)用给定的内容代替指定范围的单元内容:-E地址内容表例如:-E 2000:0100 F3 “XYZ” 8D其中F3,“X”“Y”“Z”和8D各占一个字节,用这五个字节代替原内存单元2000:0100到0104的内容,“X”“Y”“Z”将分别按它们的ASCII码值代入。

实验一熟悉使用调试工具软件DEBUG

实验一熟悉使用调试工具软件DEBUG

实验一熟悉使用调试工具软件DEBUG引言调试是软件开发过程中不可或缺的一部分。

通过调试工具软件DEBUG,我们可以查找和修复程序中的错误、检查变量的值、跟踪代码的执行路径等等。

本实验旨在帮助学生熟悉DEBUG的基本功能和使用方法。

一、实验目标1.熟悉DEBUG软件的界面和基本功能;2.学会使用DEBUG软件进行程序的调试和跟踪;3.掌握DEBUG软件中的断点设置和单步执行等功能。

二、实验环境1. 操作系统:Windows 10;2.调试工具软件:DEBUG。

三、实验步骤[DEBUG软件界面截图](1)Registers窗口显示寄存器的内容,包括通用寄存器、段寄存器等;(2)Disassembly窗口显示汇编指令的内容;(3)Dump窗口显示内存中的内容;(1)r:显示寄存器的内容;(2)u:显示当前汇编指令的地址和指令;(3)d:显示内存中的内容。

通过执行这些指令,我们可以查看和了解程序的运行状态和内存存储的内容。

(1)g:运行程序;(2)t:执行一条指令,并显示执行结果;(3)p:执行一行汇编代码,并显示执行结果。

通过执行这些指令,我们可以跟踪程序的执行路径和变量的值。

6. 在Disassembly窗口中,双击一条汇编指令可以设置断点。

设置断点后,程序执行到断点处会自动停止。

在调试过程中,我们可以查看断点前后的变量值,检查程序是否按照预期执行。

(1)bp:查看断点列表;(2)bl:清除断点列表中的断点;(3)bd:删除一个断点。

通过执行这些指令,我们可以管理和控制断点,实现更精细的调试过程。

8. 在DEBUG软件界面中,点击工具栏上的“跟踪”按钮,可以选中“Trace over”、“Trace into”和“Animate”等选项。

这些选项分别表示在执行过程中是否显示详细过程、是否跳过函数调用、是否动画演示执行过程等。

通过选择不同的选项,我们可以根据需要自定义调试过程。

四、实验总结通过本次实验,我们了解了DEBUG软件的基本功能和使用方法。

实验一Debug命令的使用

实验一Debug命令的使用

实验一Debug命令的使用实验一Debug命令的使用一、实验说明1、 DEBUG简介DEBUG.EXE是DOS提供的用于调试可执行程序的一个工具软件。

在汇编语言程序调试中很常用。

DEBUG的提示符是“-”,所有DEBUG调试命令军在此提示符下输入。

DEBUG命令都是一个字母,后跟一个或多个参数,也可使用默认参数。

DEBUG命令的使用注意问题:(1)字母不分大小写(2)只使用十六进制数,但没有带后缀字母“H”(3)命令如果不符合DEBUG的规则,则将以“error”提示,并以“^”指示出错位置。

(4)每个命令只有按下回车键后才有效,可以用Ctrl+Break终止命令的执行。

2、 Debug的调入和退出以Windows环境为例,点击“开始/运行…”,在“运行”对话框中输入命令:cmd,然后点击“确定”,进入DOS命令行状态,如:C:\Documents and Settings\mjy>然后输入命令:>Debug进入Debug调试状态,出现Debug命令提示府“-”,在此提示符下可运行所需要的Debug 命令了。

退出Debug的命令:Q3、 Debug常用命令(1)汇编命令A,格式为:- A [地址]功能:从指定地址开始允许输入汇编指令,并将该指令汇编成机器指令代码从指定地址开始存放。

若不指定地址,则系统从默认的地址开始存放。

按回车键退出汇编状态应用:用于调试一条指令或几条指令组成的一个程序段。

(2)显示和修改寄存器命令R,格式为:- R [寄存器名]功能:若指定寄存器,则显示指定的寄存器的内容,并可进行修改;若不要修改,则按Enter 健。

若未指定寄存器,则默认为显示所有寄存器的内容。

应用:常用于通过寄存器的值查看指令的执行结果。

(3)内存单元内容的命令E,格式为:- E 地址[内容表]功能:若指定内容表,则用内容表中的内容代替指定地址开始的存储单元的值;否则,从指定地址开始逐个单元显示其内容,并等待用户修改,按空格键则继续显示下一单元的值,按回车键结束。

实验一 DEBUG的使用

实验一 DEBUG的使用
三.对以下源程序进行调试,记录下每一条指令的目标代码,相应寄存器变化情况和程序的最终执行结果。
源程序:MOV AL,30H
MOV BL,26H
ADD AL,BL
PUSH AX
POP DX
MOV AH,02H
INT常用指令练习
1、传送指令
1)用A命令在内存100H处键入下列内容:
0AF4:0108 int 21
0AF4:010Amov dl,43
0AF4:010Cint 21
0AF4:010E int 20
0AF4:0110
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AF4 ES=0AF4 SS=0AF4 CS=0AF4 IP=0100 NV UP EI PL NZ NA PO NC
:0206 CD20 INT 20H ;结束
步骤:a.用E命令将目标代码写入内存CS:0200H~0207H
—E DS:200 B2,33,B4,02,CD,21,CD,20
b.用G命令从200H开始执行。
—G=CS:200
屏幕显示:
3
Program terminated normally.

c.用U命令反汇编
(2)用键盘,将AX,BX,CX,DX及DS,ES清0。
2.简单程序的执行:
(1)用E命令输入一段程序并执行,其源程序,目标代码及地址分配如下:
CS:0200 B233 MOV DL,33H ;将十六进制数‘33’存入DL中
:0202 B402 MOV AH,02H ;DOS2号功能调用
:0204 CD21 INT 21H ;屏幕显示DL内容

实验一-DEBUG的使用(1)

实验一-DEBUG的使用(1)

实验一DEBUG的使用一、实验目的熟练掌握DEBUG的常用命令以及使用DEBUG调试程序的一般方法。

二、实验内容1.熟悉DEBUG的常用命令通过CMD命令进入DOS方式,运行DEBUG程序,练习DEBUG常用命令(DEBUG 常用命令详细说明见五和六)。

2.使用DEBUG调试程序(1)用CMD命令进入DOS方式。

(2)运行DEBUG程序。

(3)使用A命令将以下笑脸程序逐行输入。

MOV DL,1MOV AH,2INT 21HINT 20H(4)使用T命令逐条指令运行笑脸程序,观察每条指令执行前后相关寄存器的内容变化情况。

(5)使用G命令连续运行笑脸程序,观察程序运行结果。

(6)使用R命令修改寄存器BX和CX的内容为笑脸程序的长度。

(7)使用N命令将笑脸程序命名为。

(8)使用W命令将笑脸程序写到指定磁盘的指定路径目录中。

(9)退出DEBUG,进入笑脸程序所在目录。

(10)运行笑脸程序。

观察程序运行结果。

(11)用DEBUG调试已生成的程序。

三、实验要求认真完成实验每一步骤,详细记录实验过程、现象和结果,及时整理实验报告。

四、实验作业1.用A命令或E命令将笑脸程序中第1条指令中的立即数修改为46,重复步骤(4)~(10),观察程序运行结果,分析为什么?如果要将笑脸程序修改为显示别的字符程序,如何修改程序?2.如果想无限循环显示笑脸,如何修改程序?3.写出实验体会。

五、DEBUG简介DEBUG是一种面向汇编语言的动态调试工具,共有19条命令。

DEBUG提供了可以跟踪、测试程序的环境和条件,使编程者能对. EXE和.COM文件的执行进行动态跟踪调试,能够较快地查找出文件中的逻辑错误和检查程序的运行结果。

此外,也可以在进入DEBUG后直接用小汇编语言(ASM)编写、调试一些小程序。

Microsoft DEBUG命令的具有以下共性:(1)DEBUG提示符为“-”。

(2)任何命令都以一个英文字母开头,后面跟一个或多个参数。

试验一调试工具DEBUG的使用

试验一调试工具DEBUG的使用
回答:
5)SP的中文名称?________,当前SP=______,为何变小?
____________________________
〈操作〉-t
6)刚执行的指令是:______________
〈操作〉-t
7)刚执行的指令是:______________
相关单元____变为______.
〈操作〉-t
code ends
end start
7、单步运行程序,分别记录运行上述程序中粗体部分时所对应的目标操作数中的内容。
【思考题】
1、上述一(1)程序中所完成1+2+3+…+100的功能,ax中保存最后计算结果,如果cmp bx,100,改成cmp bx, 400,AX中是否为1+2+3+…+400的结果,为什么?如果需要完成这种功能,应该怎样处理?
2)程序的入口地址=?_________________
(2)用断点命令观察执行结果
-g 10
回答:
3)AX=________ BX=________
对这2个寄存器的用途解释一下:______________________
(3)单步执行
用-q先退出DEBUG,重新进入DEBUG,debugex1.exe
〈操作〉-u 0 10
〈操作〉-r
〈操作〉-t
回答:
4)DS=______的两个字节,存放在堆栈段的哪两个地方(字节地址)?__________________
说明:用d ss:偏移量可观察到堆栈段的数据,以此验证。
〈操作〉-t
说明:此时执行了mov ax,0指令。
〈操作〉-t
说明:此时执行了PUSH AX指令。

调试工具DEBUG的使用

调试工具DEBUG的使用

调试工具DEBUG的使用1.1. 实验目的1、学习如何启动在Windows的命令模式下启动DEBUG;2、掌握DEBUG的常用基本命令;3、学习如何用DEBUG进行跟踪调试。

1.2. 预备知识1、进制转换需要同学们熟练掌握二进制、八进制、十进制和十六进制的互相转换算法。

2、寄存器寄存器是CPU内部的数据存储资源,是汇编程序员能直接使用的硬件资源之一。

寄存器的存取速度比Cache还要快。

在16位CPU中,总共有4个16位数据寄存器AX、BX、CX和DX,每个16位寄存器又可分为2个8位寄存器(例如AX的高八位称为AH,低八位称为AL);2个变址寄存器DI 和SI;2个指针寄存器SP和BP;4个段寄存器ES、CS、SS和DS;1个标志寄存器FLAG;1个指令指针寄存器IP。

3、标志位。

标志寄存器FLAG的每个位都可以作为标志位。

16位CPU使用其中八个位表示溢出、中断、进位等状态。

每个标志位都有置位和复位两种状态,它们在DEBUG的表示方法见下表:表1.1DEBUG中标志位的符号表示标志名称溢出OF方向DF中断IF负号SF零ZF辅助进位AF奇偶PF进位CF置位状态OV DN EI NG ZR AC PE CY 复位状态NV UP DI PL NZ NA PO NC1.3. DEBUG的命令集表1.2DEBUG命令及其含义命令格式功能说明A [地址] 输入汇编指令C [范围] 起始地址对由“范围”指定的区域与“起始地址”指定的同大小区域进行比较,显示不相同的单元D [范围]显示指定范围内的内存单元内容E 地址字节值表用值表中的值替换从“地址”开始的内存单元内容F 范围字节值表用指定的字节值表来填充内存区域G [=起始地址] [断点地址]从起点(或当前地点)开始执行,到终点结束H 数值1 数值2显示二个十六进制数值之和、差I 端口地址从端口输入L [地址[驱动器号扇区扇区数]]从磁盘读M 范围地址把“范围”内的字节值传送到从“地址”开始的单元N 文件标识符[文件标识符…]指定文件名,为读/写文件做准备O 端口地址字节值向端口输出P [=地址] [指令数]按执行过程,但不进入子程序调用或软中断Q 退出DEBUG,不保存正在调试的文件R [寄存器名]显示和修改寄存器内容S 范围字节值表在内存区域内搜索指定的字节值表。

Debug调试工具的使用

Debug调试工具的使用

实验一 Debug 调试工具的使用专业班级学号姓名实验学时实验类型实验地点实验时间指导老师高虎实验成绩年月日1.1 实验目的1)掌握debug工具的启动和debug中的一些基本命令的使用;2)使用debug命令对内存、磁盘、或文件进行操作;3)能用debug工具对内存中、磁盘上和文件中的数据进行分析;1.2 实验仪器与环境PC机一台,配置:Intel Pentium4 CPU、256MB以上内存、DOS或Windows操作系统,debug调试工具。

1.3 实验内容与步骤启动debug 的方法:从【开始】菜单中进入到【运行】,在命令行中键入“cmd“,点击【确定】,在Dos 命令提示符后键入“debug”,然后回车,则进入到debug 的调试环境,用debug 打开某个文件进入调试环境的方法是,在debug 命令后键入这个文件的全路径和文件名。

显示寄存器命令:格式:r(检查和修改寄存器内的命令)使用方法:在debug 操作提示符后键入r,然后回车即可。

退出debug 环境的命令:格式:q使用方法:在debug 操作提示符后键入q,然后回车即可。

汇编命令:格式:A 地址,(从指定起始地址单元开始存放写入的汇编语言的指定语句)使用方法:在debug 的操作提示符后键入 a 和内存地址,然后回车即可,然后我们可以把一些汇编命令直接输入到相应的内存单元中。

比较命令:格式:c 范围地址使用方法:在debug 的操作提示符后键入 c 和内存范围及要比较的第二块内存单元的地址。

显示命令:格式:d 地址或 d 范围例如:我们先在c 盘的根目录下创建一个a.txt 文件,文件内容如下图1所示:则我们可以用debug 打开这个文件,命令序列如下:C:\>debug c:\a.txt.d ds:100 200得到的结果会如下图所示图 2 debug a.txt 文件1.4实验思考通过参考试验指导书,询问同学基本上完成了本次试验的相关要求,达到了试验的相关目的,掌握debug工具的启动和debug中的一些基本命令的使用;更加熟悉的使用debug命令对内存、磁盘、或文件进行操作以及能用debug工具对内存中、磁盘上和文件中的数据进行分析。

实验一DEBUG的使用

实验一DEBUG的使用

实验一DEBUG的使用实验目的:1.学习使用DEBUG程序的各种命令。

2.掌握8088/86指令系统---算数指令。

3.掌握用DEBUG调试自编程序的方法。

4.掌握8088/8086 CPU寄存器的用途和存储器组织及它们之间的关系。

5.掌握内存操作数及寻址方法。

6.掌握汇编语言伪操作:BYTE PTR,WORD PTR。

内容及步骤:一、DEBUG 命令使用:1、敲 DEBUG 进入 DEBUG 环境,显示提示符 '_ '。

2、用命令 D100 10F 观察内存中的16进制码及屏幕右边的ASCII字符。

3、用命令 E100 30 31 32 …… 3F 将30H~3FH写入地址为100H开始的内存单元中,再用D命令观察结果,看键入的16进制数是什么字符的ASCII码?4、用命令 F100 10F 'A' 将'A'的ASCII码填入内存,用D命令查看结果。

5、用命令 F110 11F 41 将41H 填入内存,用D命令观察结果并比较。

6、用R 命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内容。

7、用R命令将AX,BX内容改写为1234H及5678H。

8、用H命令检查下列各组16进制数加减结果并和你的手算结果比较:(1)34H,22H (2)56H,78H (3)A5,79H (4)1284H,5678H (5)A758,347FH二、8088常用指令练习1、传送指令1)用A命令在内存100H处键入下列内容:MOV AX,1234MOV BX,5678XCHG AX,BXMOV AH,34MOV AL,56MOV CX,75ABXCHG AX,CX2)用U命令检查键入的程序,特别注意左边的机器码。

3)用T命令逐条运行这些指令,每运行一行检查并记录有关寄存器及IP的变化情况。

并注意标志位有无变化。

2、加减法指令:1)用A命令在内存200H处键入下列内容:MOV AH,34MOV AL,2EADD AL,AHSUB AL,78MOV CX,1234MOV DX,5678ADD CX,DXSUB CX,AXSUB CX,CX2)用U命令检查键入的程序及对应的机器码。

实验一:调试工具DEBUG的使用

实验一:调试工具DEBUG的使用

《微型计算机技术实验》实验一:调试工具DEBUG勺使用一.实验目的掌握调试工具DEBUGS使用方法,理解汇编指令、存储单元和寄存器等有关概念,能够对简单的汇编语言程序进行调试。

二.实验内容(1)学习调试工具DEBUGS使用方法,熟悉DEBUG常用命令的功能和用法。

(2)利用DEBUG S试简单的汇编语言程序,体会汇编指令的功能、寄存器的作用、存储单元地址与内容的概念和作用、以及程序的执行过程。

三.实验要求(1)掌握DEBUGS常用命令和基本的程序调试方法(2)熟悉和掌握指令系统常用指令的功能和用法,能熟练运用DEBUGS试工具调试简单的程序四.实验指导1、DEBUG命令使用1)键入DEBUG进入DEBUG控控制状态,显示提示符'-'例如:C:\DEBUG2)用命令F 100 10F 'A' 将'A'的ASCII码填入内存。

(命令格式:F<范围><单元内容表>)3)用命令D 100 10F观察内存中的十六进制码及屏幕右边的ASCII字符。

(命令格式:D<地址范围>)4)用命令F 110 11F 41 重复上二项实验,观察结果并比较。

5)用命令 E 100 30 31 32 3F将30H-3FH写入地址为100开始的内存单元中,再用D命令观察结果,看键入的十六进制数是什么字符的ASCII码?(命令格式:E<地址X批单元内容表>)6)用R命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内容。

7)用F命令将AX,BX^容改写为1050H及23A8H(命令格式:R<寄存器名>)2、常用指令练习1)内存操作数及各种寻址方式使用①用A命令在内存100H处键入下列内容:(注意:MOV传送指令,INC加一指令QEC减一指令)-A 0100MOV AX,1234MOV [1000],AXMOV BX,1002MOV BYTE P TR[BX],20MOV DL,39INC BX****:010D MOV DX,75AB /MOV WORD P TR[BX+SI+2],2846(在此按下CTRL+退出A 命令)② 用T 命令逐条运行这些指令。

实验1debug的使用

实验1debug的使用

实验1debug的使⽤实验1 DEBUG的使⽤⼀、实验⽬的:1. 熟悉DEBUG的功能,运⾏并掌握其常⽤命令。

2. 使⽤DEBUG,观察PC机执⾏汇编指令的过程,掌握寄存器的名称与内存单元地址的形成。

⼆、实验要求:1. 遵守规章制度,爱护实验室设备。

2、熟悉Debug各个命令的⽤法。

3、熟悉寄存器的名称以及物理地址的形成。

4、写出实验报告。

三、实验内容:实验1、进⼊Debug环境,完成下列步骤,熟悉DEBUG指令。

1、⽤R命令查看寄存器的值,将AX的值修改为1,BX的值修改为10。

2、⽤D命令查看内存0:0200处的内容。

3、⽤E命令将”I am a student!!”写⼊内存0:0200处。

⽤D命令查看是否写⼊成功。

4、⽤A 命令向内存0:0210处写⼊汇编指令MOV AX,1234MOV BX,0158ADD AX, BX(注意:在⼀般的PC机中,DOS⽅式下,DOS和其他合法的程序⼀般都不会使⽤0:200~0:2FF(0:200h~0:2FFh)的256 个字节的空间。

所以,我们使⽤这段空间是安全的。

)5、使⽤U命令反汇编,并⽤T命令执⾏指令,查看执⾏后的结果,3条指令执⾏后AX的值为多少?实验2、使⽤Debug命令设置下列寄存器及存储器的内容(DS)=2000H, (BX)=0100H, (SI)=0002H, (20100)=12H, (20101)=34H, (20102)=56H, (20103)=78H, (21200)=2AH, (21201)=4CH, (21202)=B7H, (21203)=65H.,⽤汇编(A)、单步执⾏(T)等命令求解下列7个问题的答案,记录每条指令执⾏后AX的值并分析每条指令中源操作数使⽤的是何种寻址⽅式。

(1)MOV AX,1200H(2) MOV AX,BX(3) MOV AX,[1200H](4) MOV AX,[BX](5) MOV AX,1100[BX](6) MOV AX,[BX][SI](7) MOV AX,1100[BX][SI]实验3、⽤A命令写⼊汇编指令,使⽤寄存器、段寄存器、存储器和⽴即数等作为操作数,验证mov、add等指令的格式并得出结论。

实验一 Debug的使用

实验一  Debug的使用

格式: E <地址> [<单元内容表>] (1) E <地址> 功能: 不断显示地址,可连续键入修改内容,直至新地址出现后
键入回车Enter为止。
(2) E <地址> <单元内容表> 其中<单元内容表>是以空格分隔的十六进制数,或用’或”
括起来的字符串,或者是二者的组合。
汇编语言程序设计
二、如何 进入Debug
方法1:在运行对话框中输入“cmd”或“command”启动 DOS命令窗口后输入“Debug”回车; 方法2:在程序/附件/命令提示符,启动DOS命令窗口后输 入“Debug”回车。 进入Debug的提示符是符号“-”。即出现提示符“-”就表 示可以接受DEBUG命令了。 按Alt+Enter键可在全屏与窗口之间切换。
汇编语言程序设计 示例:用A命令,输入下列程序并运行 -a 1000:0
mov ax, 1
mov bx, 2 mov cx, 3
add ax, bx
add ax, cx add ax, ax 直接按Enter键结束输入。 用r命令将cs修改成1000,ip修改成0,再 使用t命令单步执行程序。执行T命令时,CPU执行CS:IP指向的指令 并将IP加指令长度指向下一条指令。

汇编语言程序设计
四、Debug常用命令
? 显示 Debug 命令列表。 R 显示或改变一个或多个寄 存器的内容 D 显示查看内存中的内容。 E 从指定地址开始,将数据输 入到内存,即改写内存的内容。 A 以汇编指令的格式在内存 中写入一条机器指令。 U 反汇编字节并显示相应的 汇编指令 T 执行一条指令,然后显示 所有寄存器的内容
7、G命令
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《微型计算机技术实验》
实验一:调试工具DEBUG的使用
一.实验目的
掌握调试工具DEBUG的使用方法,理解汇编指令、存储单元和寄存器等有关概念,能够对简单的汇编语言程序进行调试。

二.实验内容
(1)学习调试工具DEBUG的使用方法,熟悉DEBUG常用命令的功能和用法。

(2)利用DEBUG调试简单的汇编语言程序,体会汇编指令的功能、寄存器的作用、存储单元地址与内容的概念和作用、以及程序的执行过程。

三.实验要求
(1)掌握DEBUG的常用命令和基本的程序调试方法
(2)熟悉和掌握指令系统常用指令的功能和用法,能熟练运用DEBUG调试工具调试简单的程序
四.实验指导
1、DEBUG 命令使用
1)键入 DEBUG 进入 DEBUG 控制状态,显示提示符 '- '。

例如:C:\DEBUG
-
2)用命令 F 100 10F 'A' 将'A'的ASCII码填入内存。

(命令格式: F<范围><单元内容表>)
3)用命令 D 100 10F 观察内存中的十六进制码及屏幕右边的ASCII字符。

(命令格式: D<地址范围>)
4)用命令 F 110 11F 41 重复上二项实验,观察结果并比较。

5)用命令 E 100 30 31 32 …… 3F将30H-3FH写入地址为100开始的内存单元中,再用D命令观察结果,看键入的十六进制数是什么字符的ASCII码? (命令格式: E<地址><批单元内容表>)6)用R命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内容。

7)用R命令将AX,BX内容改写为1050H及23A8H。

(命令格式: R<寄存器名>)
2、常用指令练习
1)内存操作数及各种寻址方式使用
①用A命令在内存100H处键入下列内容:
(注意:MOV 传送指令,INC加一指令,DEC 减一指令)
-A 0100
MOV AX,1234
MOV [1000],AX
MOV BX,1002
MOV BYTE PTR[BX],20
MOV DL,39
INC BX
MOV [BX],DL
DEC DL
MOV SI,3
MOV [BX+SI],DL
MOV [BX+SI+1],DL
MOV WORD PTR[BX+SI+2],2846
(在此按下CTRL+C退出A命令)
②用T命令逐条运行这些指令。

(命令格式: T[=<地址>][<条数>])
③每运行一条有关内存操作数的指令,要用D命令检查并记录有关内存单元的内容并注意理解是什么寻址方式。

注意:D命令显示结果中右边的ASCII字符及双字节数存放法(低对低,高对高)。

2)传送指令
①用A命令在内存100H处键入下列内容:
-A 0100↙
****:0100 MOV AX,1234↙
****:0103 MOV BX,5678↙
****:0106 XCHG AX,BX↙
****:0108 MOV AH,35↙
****:010A MOV AL,48↙
****:010D MOV DX,75AB↙
****:010F XCHG AX,DX↙
****:0111 (在此按下CTRL+C退出A命令)
注:****为段寄存器CS的值,是由计算机随机产生的。

②用U命令检查键入的程序并记录,特别注意左边的机器码。

(命令格式:U <地址>)
-U 0100↙
③用T命令逐条运行这些指令,每运行一行检查并记录有关寄存器及IP的变化情况。

并注意标志位有无变化。

-T=0100↙
-T↙
-T↙

3)加减法指令:
①用A命令在内存100H处键入下列内容:
MOV AH,34
MOV AL,22
ADD AL,AH
SUB AL,78
MOV CX,1284
MOV DX,5678
ADD CX,DX
SUB CX,AX
SUB CX,CX
②用U命令检查键入的程序及对应的机器码。

③用T命令逐条运行这些指令,检查并记录有关寄存器及ZF情况。

4)验证性实验
DATA SEGMENT
STR1 DB 'ASDFGHJK'
CN EQU $-STR1
STR2 DB 'ASDFGTYU'
FLAG DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
START:MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV FLAG,1
MOV SI,OFFSET STR1
MOV DI,OFFSET STR2
MOV CX,CN
CLD
REPZ CMPSB
JZ NEXT
MOV FLAG,0
NEXT: MOV AH,4CH
INT 21H
CODE ENDS
END START
①用用文字编辑工具(常用EDIT或记事本)将源程序输入,其扩展名为‚**.ASM‛
②用MASM对源文件进行汇编,产生‚**.OBJ‛文件和‚**.LST‛文件。

若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。

③用LINK将‚**.OBJ‛文件连接成可执行的‚**.EXE‛文件。

④用DEBUG的U命令进行反汇编,得到该程序所在地址的起点和终点(①进入DEBUG时输入‚DEBUG **.EXE‛②再输入U命令将**.EXE 反汇编成机器代码)
⑤用DEBUG的G命令执行该程序(连续执行G 命令,格式:G=[address1][address2] 例如:G=0000 0021)
⑥用DEBUG的D命令查看内存单元FLAG的情况
⑦修改数据段为:
DATA SEGMENT
STR1 DB ‘ASDFGHJK’
CN EQU $-STR1
STR2 DB ‘ASDFGHJK’
FLAG DB ?
DATA SEGMENT
保存后重新执行实验步骤2~6,观察实验结果。

附:动态调试器DEBUG 使用
1、键入 DEBUG 进入 DEBUG,显示提示符 '-'。

2、退出DEBUG命令:Q
3、显示内存命令:D 起始地址结束地址
4、修改内存命令:E 起始地址,连续修改键入空格键,键入回车键退出E命令。

5、检查寄存器命令:R
6、修改寄存器命令:R 寄存器名
7、小汇编命令:A 起始地址,不输入指令键入回车键退出A命令。

8、反汇编命令:U 起始地址结束地址
9、运行命令:G=起始地址结束(断点)地址
10、单步命令:T=起始地址运行指令数,进入子程序内部。

表1 标志寄存器显示内容一览表
标志位显示标志为1 标志为0 OF 溢出(是/否) OV NV DF 方向(减量/增量) DN UP
IF 中断(允许/关闭) EI DI SF 符号(负/正) NG PL ZF 零(是/否) ZR NZ AF 辅助进位(是/否) AC NA PF 奇偶(偶/奇) PE PO CF 进位(是/否)CY NC。

相关文档
最新文档