DEBUG实验参考

合集下载

实验一-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实验报告

debug实验报告Debug实验报告引言:在软件开发和编程过程中,调试(Debug)是一项非常重要的任务。

通过调试,我们可以找到程序中的错误和问题,并进行修复。

本实验报告旨在探讨调试的重要性、调试的方法和技巧,以及调试过程中可能遇到的挑战和解决方案。

一、调试的重要性调试是软件开发过程中不可或缺的一环。

它有助于提高程序的质量和稳定性,确保程序能够按照预期的方式运行。

调试可以帮助开发人员快速定位和修复错误,提高开发效率。

同时,调试也是学习和提升编程技能的重要手段,通过调试,我们可以深入了解程序的运行机制和各种问题的解决方法。

二、调试的方法和技巧1. 使用调试器工具:调试器工具是程序员的得力助手,可以帮助我们逐行执行代码、查看变量的值和程序的执行流程。

常用的调试器工具有GDB(GNU Debugger)、Xcode等。

通过使用调试器工具,我们可以更加直观地观察程序的执行过程,快速定位错误所在。

2. 打印调试信息:在程序中适当地插入打印语句,输出关键变量的值和程序的执行状态,可以帮助我们了解程序的执行流程,找到错误的发生位置。

在调试完成后,记得删除或注释掉这些打印语句,以免影响程序的性能。

3. 缩小调试范围:当程序出现问题时,可以通过逐步缩小调试范围的方式,找出引发问题的具体代码。

可以先注释掉一部分代码,验证程序是否正常运行,然后逐步恢复注释,直到找到引发问题的代码段。

4. 使用断言和异常处理:在程序中合理地使用断言和异常处理机制,可以在错误发生时及时中断程序的执行,并输出相关的错误信息。

这样可以帮助我们快速定位错误,提高调试效率。

三、调试过程中的挑战和解决方案1. 复现问题:有时,程序在某些特定条件下才会出现问题。

在调试过程中,我们需要尽可能还原出问题的场景,以便更好地分析和解决问题。

可以通过调整输入数据、环境变量等方式,尽量复现问题。

2. 多线程调试:当程序涉及多线程时,调试过程会变得更加复杂。

由于多线程的并发执行,错误可能会难以复现和定位。

debug的使用实验报告

debug的使用实验报告

debug的使用实验报告
《Debug的使用实验报告》
在软件开发过程中,debug是一个非常重要的步骤,它可以帮助开发者找到并
修复代码中的错误。

在本次实验中,我们将探讨debug的使用方法以及其在软
件开发中的重要性。

首先,我们需要明确debug的定义。

Debug是一种通过检查、测试和纠正软件
中的错误来确保其正常运行的过程。

在实际应用中,debug通常涉及使用调试
器工具来逐步执行代码并观察其行为,以便找出问题所在。

在本次实验中,我们使用了一个简单的Java程序作为例子来演示debug的使用。

该程序包含了一些常见的错误,如语法错误、逻辑错误和运行时错误。

通过使
用调试器工具,我们逐步执行程序并观察其行为,以便找出并修复这些错误。

在实验过程中,我们发现debug的使用能够极大地提高代码的质量和稳定性。

通过逐步执行程序并观察其行为,我们可以更容易地找出并修复代码中的错误,从而减少了在后期测试阶段发现问题的可能性。

此外,debug还可以帮助我们
更好地理解程序的运行逻辑,从而提高了代码的可读性和可维护性。

总的来说,通过本次实验,我们深刻认识到了debug在软件开发中的重要性。

它不仅可以帮助我们找出并修复代码中的错误,还可以提高代码的质量和稳定性。

因此,在日常的软件开发过程中,我们应该充分利用debug工具,以确保
我们的程序能够正常运行并具有良好的性能。

实验一、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 调试汇编语言程序段

实验名称实验一利用 DEBUG 调试汇编语言程序段一、实验目的1.熟悉 DEBUG 有关命令的使用方法;2.利用 DEBUG 掌握有关指令的功能;3.利用 DEBUG 运行简单的程序段。

二、实验要求1.仔细阅读有关 DEBUG 命令的内容,对有关命令,要求事先准备好使用的例子;三、实验环境DOS 操作系统四、实验内容1.进入和退出 DEBUG 程序;1)开始—运行点确定进入DOS命令窗口图1进入DOS命令窗口2)在命令窗口中输入 dubug 进入 debug 程序图2进入 debug 程序3)进入 debug 窗口后,输入 q 命令退出 debug图3退出 debug2.学会 DEBUG 中的1)D 命令(显示内存数据 D 段地址:偏移地址)例 1:-D100 ;显示 DS 段, 0100 开始的 128 个字节内容-D ;默认段寄存器为 DS,当前偏移地址(刚进入 debug 程序偏移地址为 0100H)图4默认显示 DS 段内容-D DS:100 ;显示 DS 段, 0100H 开始的 128 个字节内容图5显示 DS 段内容-D CS:200 ;显示 CS 段, 0200H 开始的 128 个字节内容图6显示 CS 段内容-D 200:100 ;显示 DS 段, 0200:0100H 开始的 128 个字节内容图7显示 DS段0200:0100H内容-D 200 ;显示 DS 段, 0200H开始的128个字节内容图8显示 DS段0200H开始的内容-D 100 L 10 ;显示 DS 段, 100H 开始的 100H 个字节内容图9显示 DS段100H开始的100H字节内容2)E 命令(修改指定内存)例 1:-E100 41 42 43 44 48 47 46 45-D 100,L08结果:073F:0100 41 42 43 44 48 47 46 45-e 100 修改内存内容-d 100,L08 查看刚才修改的内存内容图10 修改和查看DS段100H开始的80H字节内容例 2: -E 100073F:0100 41. 42 : 42 是操作员键入此命令是将原 100 号内存内容 41 修改为 42,用 D 命令可察看。

《Debug常用命令的使用方法》

《Debug常用命令的使用方法》

一、熟悉和掌握如下Debug常用命令的使用方法:R,D,E,A,U,T,P,G,QR 显示和修改寄存器的内容D 显示寄存器单元的内容E 显示和修改存储单元的内容A 汇编命令U 反汇编命令T 执行一条或多条指令P 逐条执行指令G 设置断点并启动运行被调试程序Q 结束并推出DEBUG程序二、熟悉和掌握在Debug中运用MOV、AND、OR、XOR、NOT指令进行二进制数实验题目一: 已知 a = 00111000B, b= 11000111B, 试求(1) a AND b(2) a OR b(3) a XOR b(4) NOT a实验内容: a AND b-A18AE:0100 MOV AL,3818AE:0102 MOV BL,C718AE:0104 AND AL,BL18AE:0106实验步骤:-RAX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=18AE ES=18AE SS=18AE CS=18AE IP=0100 NV UP EI PL NZ NA PO NC 18AE:0100 B038 MOV AL,38-PAX=0038 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=18AE ES=18AE SS=18AE CS=18AE IP=0102 NV UP EI PL NZ NA PO NC 18AE:0102 B3C7 MOV BL,C7-PAX=0038 BX=00C7 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=18AE ES=18AE SS=18AE CS=18AE IP=0104 NV UP EI PL NZ NA PO NC 18AE:0104 20D8 AND AL,BL-PAX=0000 BX=00C7 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=18AE ES=18AE SS=18AE CS=18AE IP=0106 NV UP EI PL ZR NA PE NC 18AE:0106 0000 ADD [BX+SI],AL DS:00C7=0D实验小结:最终结果AL=0000即a AND b=0000三、熟悉和掌握在Debug中运用MOV、ADD、SUB、DAA、DAA指令进行二进制数(补码)、BCD数的加减运算,并注意观察记录标志位的变化情况。

实验一 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的基本命令使用

DEBUG的基本命令使用

实验一 DEBUG的基本命令使用实验名称:利用DEBUG验证寻址方式实验目的:掌握DEBUG的常用指令(R,D,E,A,U,T 指令)的使用方法,理解不同寻址方式的特点实验内容:在DEBUG中利用A命令输入以下汇编指令,并用U命令显示,利用T 命令单步跟踪指令的执行过程,利用R或者D命令观察相关寄存器或者内存单元内容的变化(相关过程和结果要体现在实验报告上)。

(1)立即寻址MOV AX,1MOV BL,02HMOV BH,34H-a13AE:0100 mov ax,113AE:0103 mov bl,0213AE:0105 mov bh,3413AE:0107-rAX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=0100 NV UP EI PL NZ NA PO NC13AE:0100 B80100 MOV AX,0001-tAX=0001 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=0103 NV UP EI PL NZ NA PO NC13AE:0103 B302 MOV BL,02-tAX=0001 BX=0002 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=0105 NV UP EI PL NZ NA PO NC13AE:0105 B734 MOV BH,34-tAX=0001 BX=3402 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=0107 NV UP EI PL NZ NA PO NC13AE:0107 0000 ADD [BX+SI],AL DS:3402=00(2)寄存器寻址在验证完(1)后,执行mov ax,bx-a13AE:0107 mov ax,bx13AE:0109-tAX=3402 BX=3402 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=0109 NV UP EI PL NZ NA PO NC13AE:0109 0000 ADD [BX+SI],AL DS:3402=00 -rAX=3402 BX=3402 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=0109 NV UP EI PL NZ NA PO NC13AE:0109 0000 ADD [BX+SI],AL DS:3402=00(3)直接寻址用e命令向DS:1000处写入1234H,用D命令DS:1000处内容,然后执行mov AX,[1000H]-e 13a8:1000 34 12-d 13a8:1000 100113A8:1000 34 12 4.-a13AE:0109 mov ax,[1000]13AE:010C-tAX=0000 BX=3402 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=010C NV UP EI PL NZ NA PO NC13AE:010C 0000 ADD [BX+SI],AL DS:3402=00 -rAX=0000 BX=3402 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=010C NV UP EI PL NZ NA PO NC13AE:010C 0000 ADD [BX+SI],AL DS:3402=00(4)寄存器间接寻址用E命令向DS:1000处改写5678H,用D命令观察DS:1000处内容,然后执行-e13a8:1000 78 56-d 13a8:1000 100113A8:1000 78 56 xV-a13AE:010C mov si,100013AE:010F mov ax,[si]13AE:0111-tAX=0000 BX=3402 CX=0000 DX=0000 SP=FFEE BP=0000 SI=1000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=010F NV UP EI PL NZ NA PO NC13AE:010F 8B04 MOV AX,[SI] DS:1000=0000 -tAX=0000 BX=3402 CX=0000 DX=0000 SP=FFEE BP=0000 SI=1000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=0111 NV UP EI PL NZ NA PO NC13AE:0111 0000 ADD [BX+SI],AL DS:4402=00 -rAX=0000 BX=3402 CX=0000 DX=0000 SP=FFEE BP=0000 SI=1000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=0111 NV UP EI PL NZ NA PO NC13AE:0111 0000 ADD [BX+SI],AL DS:4402=00(5)变址寻址执行Mov BX,1000hMov AX,[BX+1]观察指令执行后AX,BX内容,以及[BX+1]内存单元处数据-a13AE:0111 mov bx,100013AE:0114 mov ax,[bx+1]13AE:0117-tAX=0000 BX=1000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=1000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=0114 NV UP EI PL NZ NA PO NC13AE:0114 8B4701 MOV AX,[BX+01] DS:1001=0000 -tAX=0000 BX=1000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=1000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=0117 NV UP EI PL NZ NA PO NC13AE:0117 0000 ADD [BX+SI],AL DS:2000=00 -rAX=0000 BX=1000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=1000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=0117 NV UP EI PL NZ NA PO NC13AE:0117 0000 ADD [BX+SI],AL DS:2000=00 -d 1001 100213AE:1000 00 00 ..(6)变址加基址寻址用E命令向DS:1000~1004处写入0AB90H,03412H,然后执行Mov BX,1000hMov SI,1Mov AX,[BX+SI]Mov CX,[BX+SI+1]-e 1000 12-e 1001 34-e 1002 90-e 1003 ab-a13AE:0117 mov bx,100013AE:011A mov si,113AE:011D mov ax,[bx+si]13AE:011F mov cx,[bx+si+1]13AE:0122-tAX=0000 BX=1000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=1000 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=011A NV UP EI PL NZ NA PO NC13AE:011A BE0100 MOV SI,0001-tAX=0000 BX=1000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0001 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=011D NV UP EI PL NZ NA PO NC13AE:011D 8B00 MOV AX,[BX+SI] DS:1001=9034 -tAX=9034 BX=1000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0001 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=011F NV UP EI PL NZ NA PO NC13AE:011F 8B4801 MOV CX,[BX+SI+01] DS:1002=AB90 -rAX=9034 BX=1000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0001 DI=0000DS=13AE ES=13AE SS=13AE CS=13AE IP=011F NV UP EI PL NZ NA PO NC13AE:011F 8B4801 MOV CX,[BX+SI+01] DS:1002=AB90。

实验一 用DEBUG熟悉指令功能和寻址方式

实验一 用DEBUG熟悉指令功能和寻址方式

实验一用DEBUG熟悉指令功能和寻址方式一、实验性质:验证型二、实验目的:掌握debug的使用,能建立和运行汇编语言程序掌握寻址方式DEBUG的命令DEBUG的命令都用单个字母表示,其后可以跟一个或多个参数,参数之间用空格或逗号分隔。

DEBUG的命令参数大多数是地址或地址范围,其地址书写格式为:[段地址:]偏移地址其中的段地址可以用段寄存器名表示,也可以用一个十六进制数表示。

如:ES:10043A5:200地址范围的书写格式为:Ⅰ.[段地址:]起始偏移地址终止偏移地址Ⅱ.[段地址:]起始领衔地址L长度如:CS:10010F和CS:100L10所指的地址范围是一致的。

当输入的命令不正确时,DEBUG将在该行底下指出错误所在。

注意:在DEBUG下,输入的数据和显示的数据都是十六进制数,不用在数据后加“H”A汇编与反汇编命令1.汇编命令A格式:A[地址]功能:从键盘输入汇编程序,并逐条地把汇编指令翻译成机器代码指令存入对应内存单元。

说明:如果不指定汇编地址,则以CS:IP为地址。

例:0BB6:0000-0005写入三条指令。

2.反汇编命令U格式:U[地址]/[地址范围]功能:将指定地址范围内的机器代码翻译成汇编源程序指令显示出来,并同时显示地址及代码。

注意:反汇编时一定确认指令的起始地址,否则得不到正确的结果。

例:反汇编看CS:0005-0011单元的指令。

B显示与修改内存单元内容的命令1.显示内存单元内容命令D格式1:D[地址]格式2:D地址范围只写一个D,表示显示从当前地址单元开始的128个单元中的字节数据说明:D命令在屏幕上显示的内容分为三部分,左边是每一行存储单元的起始地址,中间是各字节单元的内容,右边是各单元内容对应的ASCII码字符(不可显示的字符用"."代替)。

指定要显示的单元的逻辑地址,即写出完整的段地址和偏移地址。

指定要显示数据区起始单元的地址和最后一个单元的地址。

实验一DEBUG的使用

实验一DEBUG的使用

实验一DEBUG的使用实验1 DEBUG的使用一、实验目的:通过实验掌握下列知识:1、DEBUG命令的使用;2、8088系统中数据在内存中的存放方式和内存操作数的几种寻址方式。

二、实验类型:验证三、实验内容和步骤1、将AX,BX,CX,DX的值分别改为100H,200H,300H,400H2、将标志位CF,SF,ZF值改为13、将2000H:1000H开始的连续3个字节单元的值分别改为12H,34H,56H4、将3000H:1000H开始的连续20H个字节单元的内容全部改写55H5、写一段程序,求2000H:1000H开始的连续3个字节单元的和,将结果保存到2000H:2000H 字节单元中(设不会溢出)6、设2000H:1000H,2000H:1004H两个字单元的内容分别为1234H,5678H,写一段程序实现将两个字单元的值进行交换7、内存操作数及各种寻址方式使用程序内容:MOV AX,1234MOV [1000],AXMOV BX,1002MOV BYTE PTR[BX],20MOV DL,39INC BXMOV [BX],DLDEC DLMOV SI,3MOV [BX+SI],DLMOV [BX+SI+1],DLMOV WORD PTR[BX+SI+2],2846操作步骤1)用A命令键入上述程序,并用T命令逐条运行。

2)每运行一条有关内存操作数的指令,要用D命令检查并记录有关内存单元的内容并注明是什么寻址方式。

注意D命令显示结果中右边的ASCII字符及字数据的存放方法。

8、求累加和程序:程序内容:MOV BX,1000MOV CX,10SUB AX,AXLOP: ADD AL,[BX]ADC AH,0INC BXJ: LOOP LOPINT3操作步骤:1)用A命令将程序键入到100H开始的内存中,在键入时记下标号LOP和J的实际地址,在键入LOOP指令时LOP用实际地址值代替。

2)用命令N AA将此程序命名为文件AA(文件名可任取)。

实验一 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 地址[内容表]功能:若指定内容表,则用内容表中的内容代替指定地址开始的存储单元的值;否则,从指定地址开始逐个单元显示其内容,并等待用户修改,按空格键则继续显示下一单元的值,按回车键结束。

实验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命令的使用

DEBUG命令的使用
一、实验目的
1.练习简单的DOS命令(DIR, CD,MD ,CLS)
2.学习使用DEBUG程序的常用命令。

(R,D,E, A,U,T, G,Q)
3.了解8086内存地址空间分配
二、实验任务
1.用DIR命令查看当前工作目录的文件。

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

3.用命令 CLS清屏。

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

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


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

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

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

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

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

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

实验二 调试程序 DEBUG 的使用

实验二 调试程序 DEBUG 的使用

(7)用 R 命令检查各寄存器内容,特别注意 AX,BX,CX,DX,IP 及标 志位中 ZF,CF 和AF 的内容。 (8)用 R 命令将 AX,BX 内容改写为 1050H 及 23A8H。 (9)比较下面指令的区别: ・ MOV AX,2000H ・ MOV BX,[2000H] 一 D 2000 2001;显示字存储 单元 DS:2000 的内容 3ADC:2000 5A 58 一 R;显示指令执行前 AX,BX的内容 AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=3ADC ES=3ADC SS=3ADC CS=3ADC IP=0100 NV UP EI PL NZ NA PO NC 3ADC:0100 858CFFF3 TEST CX,[SI+F3FF] DS:F3FF=74C0 一 A ;利用 A命令输入汇编 指令 3ADC:0100 MOV AX,2000 3ADC:0103 MOV BX,[2000] 3ADC:0107 INT 3 ;此中断为断点中断,使程序执行暂停 3ADC:0108 一 G;不指定地址,从当前 CS:IP 处执行 AX=2000 BX=585A CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=3ADC ES=3ADC SS=3ADC CS=3ADC IP=0107 NV UP EI PL NZ NA PO NC 3ADC:0107 CC INT 3;指令执行后,AX=2000H,BX=585AH 2.以寄存器 BX 作为地址指针,从 BX 所指的存储单元开始起,连 续存放着两个无符号数(字操作数),编程求它们的和,并将结果存 放在这两个数之后。

debug指令实验报告

debug指令实验报告

成绩评定教师签名嘉应学院计算机学院实验报告课程名称:汇编语言程序设计开课学期:2017-2018学年第1学期班级:指导老师:实验题目:Debug常用命令及80x86指令的使用学号:姓名:一、实验目的:通过实验掌握下列知识:1、DEBUG常用命令: A,U,D,E,R,T,G,Q。

2、80x86寄存器: AX/EAX,BX/EBX,CX/ECX,DX/EDX,FLAG,IP/EIP3、80x86常用指令: MOV/MOVSX/MOVZX,ADD/ADC,SUB/SBB,DAA 等。

二.实验内容1、DEBUG 命令使用2、808x86常用指令练习三、实验过程描述(一)、DEBUG 命令使用:1、打 DEBUG 进入 DEBUG 控制,显示提示苻 '_ '。

2、用命令 E 18E4:100 'A' 将'A'的ASCII码填入内存。

3、用命令 D 18E4:100 观察内存中的16进制码及屏幕右边的ASCII字符。

4、用命令 E 18E4:100 41 重复上二项实验,观察结果并比较。

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

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

(二)、808x86常用指令练习1、传送指令1)用A命令在内存100H处键入下列内容:MOV AX,1234MOV BX,5678XCHG AX,BXMOV AH,35MOV AL,48MOV DX,75ABXCHG AX,DX2)用U命令检查键入的程序并记录,特别注意左边的机器码。

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

DEBUG使用实验

DEBUG使用实验

实验二DEBUG使用实验一、实验目的1.掌握DEBUG常用命令的使用。

2.进一步了解80X86的存储结构和寄存器。

3.进一步理解有关指令的功能与应用。

二、实验内容1. (1)用R命令检查和修改寄存器内容并记录。

(2)用D命令显示内存单元内容并记录。

(3)调试程序:MOV SI,0MOV AX,[SI]INC SIINC SIADD AX,[SI]MOV BX,AXINT 20H记录结果:运行前:DS = 13B6,(运行前预设的两个数据,不要用系统默认的数据,记录时注意字类型数据的存储结构)字单元(DS:0000H)=1234 ,字单元(DS:0002H)= 5678。

运行后:AX =68AC ,BX= 68AC。

(4)求BUF单元开始的3个BCD码数之和,并将结果存入SUM单元。

(编写程序)程序:DATA SEGMENTBUF DB 34H,27H,13HSUM DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA SI,BUFMOV AL,[SI]INC SIADD AL,[SI]INC SIADD AL,[SI]DAAMOV SUM,ALMOV CL,4SHR AL,CLADD AL,30HMOV DL,ALMOV AH,2INT 21HMOV AL,SUMAND AL,0FHADD AL,30HMOV DL,AL MOV AH,2INT 21HMOV AH,4CH INT 21H CODE ENDS END START实验数据记录:数据修改后第一组数据:结果74恰好是三个BCD压缩码34H,27H,13H的和第二数据:我特地特意取了较大的BCD压缩码,但是得出的结果很有问题。

SUM的个位好像是三个数据个位通过十六进制相加,十位是十进制相加;本来我以为是我应该把SUM 定义成字的,但是代码段的修改确实不好修改:SUM 定义成字节时得出的结果不能显示出进位位;修改成字后,黑窗口运行结果就只显示成了一个问号,这个之后得再请教老师。

实验三 Debug的使用(2)

实验三  Debug的使用(2)

实验三Debug的使用(二)一、实验要求和目的1.熟悉Debug环境。

2.掌握常用Debug命令的基本操作。

二、软硬件环境1.硬件环境:微机CPU 486以上,500MB以上硬盘,32M以上内存;2.软件环境:装有MASM 5.0、DEBUG、LINK和EDIT 等应用程序。

三、实验涉及的主要知识单元前面实验中,讲了Debug一些主要命令的用法,这里,我们再补充一些关于Debug的知识。

(1)关于D命令从上次实验中,我们知道,D命令是查看内存单元的命令,可以用:d 段地址:偏移地址的格式查看指定的内存单元的内容,上次实验中,D命令后面的段地址和偏移地址都是直接给出的。

现在,我们知道段地址是放在段寄存器中的,在D 命令后面直接给出段地址,是Debug提供的一种直观的操作方式。

D命令是由Debug执行的,Debug在执行“d 1000:0”这样的命令时,也会先将段地址1000送入段寄存器中。

Debug是靠什么来执行D命令的?当然是一段程序。

谁来执行这段程序?当然是CPU。

CPU在访问内存单元的时候从哪里得到内存单元的段地址?从段寄存器中得到。

所以,Debug在其处理D命令的程序段中,必须有将段地址送入段寄存器的代码。

段寄存器有4个:CS、DS、SS、ES,将段地址送入哪个段寄存器呢?首先不能是CS,因为CS:IP必须指向Debug处理D 命令的代码,也不能是SS,因为SS:SP要指向栈顶。

这样只剩下了DS和ES可以选择,放在哪里呢?我们知道,访问内存的指令如“mov ax,[0]”等一般都默认段地址在ds中,所以Debug在执行如:“d 段地址:偏移地址”这种D命令时,将段地址送入ds中比较方便。

D命令也提供了一种符合CPU机理的格式:“d 段寄存器:偏移地址”,以段寄存器中的数据为段地址SA,列出从SA:偏移地址开始的内存区间中的数据。

以下是4个例子:①-r ds:1000-d ds:0 ;查看从1000:0开始的内存区间中的内容② -r ds:1000-d ds:10 18 ;查看1000:10~1000:18中的内容③-d cs:0 ;查看当前代码段中的指令代码④-d ss:0 ;查看当前栈段中的内容(2)在E、A、U命令中使用段寄存器在E、A、U这些可以带有内存单元地址的命令中,也可以同D命令一样,用段寄存器表示内存单元的段地址。

DEBUG实验参考

DEBUG实验参考

实验一顺序程序设计与DEBUG使用一、实验题目1.利用串操作传送指今将0FFH送入数据段的0180H开始的128个字节存储单元中,编写一段程序。

2.将数据段中0200H字节存储单元中的二位BCD码转换为二个ASCII码送0201H开始的二个字节单元中,编写—段程序。

3.编写一段程序,在内存中自SQTAB(0200H)地址开始的连续十个单元中存放0~9的平方值。

要求利用计算法查表求NUM(0210H)单元中指定数(0~9中的任意一数)的平方值,并将所求平方值存入RESULT(0211H)单元中。

[注]:题目二和题目三可选做一个,题目一必做。

二、实验设备硬件环境 IBM/PC及其兼容机软件环境操作系统DOS6.22调试程序三、实验要求1、利用DEBUG程序中的A命令,对编写好的源程序进行编辑和汇编。

2、利用U命令对汇编后的目标程序进行反汇编,可检查编辑的程序是否正确,也可知道每条指令的IP值。

3、利用T、G命令对程序进行单步、没断点和连续执行。

4、利用R、D、E命令可对程序运行前预置数据,运行中检查中间结果和远行后检查最终结果。

5、利用Q命令退出DEBUG程序,返回DOS。

四、预习要求1、复习DOS启动及DOS的有关命令的使用。

2、阅读本指导书的附录一,了解和掌握DCBUG程序中的 A、U、R、D、E、T、G和Q的书规定和功能。

3、预先编写好题目中的源程序。

(第一题已有源程序,见实验步骤)五、实验步骤题目一:1、启动DOS操作系统。

2、运行程序D:>DEBUG— (此即处于DEBUG等待命令状态的提示符)3、用A命令编辑和汇编源程序(黑体字部分为键盘输入部分)_A16C0:0100 MOV DI,01800103 MOV CX,800106 MOV AL,FF0108 REP STOSB010A HLT010B-4、用U命令反汇编验证源程序_U CS:010016C0:0100 BF8001 MOV DI,018016C0:0103 B97F00 MOV CX,008016C0:0106 BOFF MOV AL,FF16C0:0108 F3 REPZ16C0:0109 AA STOSB16C0:010A F4 HLT5、源程序若有错,可返回第3步用A命令进行修改,再进行3—4。

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

实验一顺序程序设计与DEBUG使用一、实验题目1.利用串操作传送指今将0FFH送入数据段的0180H开始的128个字节存储单元中,编写一段程序。

2.将数据段中0200H字节存储单元中的二位BCD码转换为二个ASCII码送0201H开始的二个字节单元中,编写—段程序。

3.编写一段程序,在内存中自SQTAB(0200H)地址开始的连续十个单元中存放0~9的平方值。

要求利用计算法查表求NUM(0210H)单元中指定数(0~9中的任意一数)的平方值,并将所求平方值存入RESULT(0211H)单元中。

[注]:题目二和题目三可选做一个,题目一必做。

二、实验设备硬件环境 IBM/PC及其兼容机软件环境操作系统DOS6.22调试程序三、实验要求1、利用DEBUG程序中的A命令,对编写好的源程序进行编辑和汇编。

2、利用U命令对汇编后的目标程序进行反汇编,可检查编辑的程序是否正确,也可知道每条指令的IP值。

3、利用T、G命令对程序进行单步、没断点和连续执行。

4、利用R、D、E命令可对程序运行前预置数据,运行中检查中间结果和远行后检查最终结果。

5、利用Q命令退出DEBUG程序,返回DOS。

四、预习要求1、复习DOS启动及DOS的有关命令的使用。

2、阅读本指导书的附录一,了解和掌握DCBUG程序中的 A、U、R、D、E、T、G和Q的书规定和功能。

3、预先编写好题目中的源程序。

(第一题已有源程序,见实验步骤)五、实验步骤题目一:1、启动DOS操作系统。

2、运行程序D:>DEBUG— (此即处于DEBUG等待命令状态的提示符)3、用A命令编辑和汇编源程序(黑体字部分为键盘输入部分)_A16C0:0100 MOV DI,01800103 MOV CX,800106 MOV AL,FF0108 REP STOSB010A HLT010B-4、用U命令反汇编验证源程序_U CS:010016C0:0100 BF8001 MOV DI,018016C0:0103 B97F00 MOV CX,008016C0:0106 BOFF MOV AL,FF16C0:0108 F3 REPZ16C0:0109 AA STOSB16C0:010A F4 HLT5、源程序若有错,可返回第3步用A命令进行修改,再进行3—4。

无错误,可运行程序。

6、用R命令观察程序末执行前,程序中各有关寄存器内容,并填人括号中。

_RAL=( ),DI=( ),CX=( ),DS=( ),CS=( ),IP=( ) 7、用D命令观察程序未执行前,存放结果的存储区中内容。

_D ES:01808、用T命令执行一条指令,观察DI寄存器内容的变化,并填入此值:_TDI=( ) IP=( ) CS=( )9、用T命令一条条执行程序,并观察相应的寄存器内容或存储单元内容,一直执行到最后一条指令为止。

10、用D命令观察最终结果_D ES:0180此时可观察到ES:0180~ES:01FF单元中内容已全部改变为FF。

11、用R命令改变1P值,使它回到程序的第一条指令处_R IP_010012、用R命令以观察IP值,已改变为0100_R13、用A命令对存储数据的缓冲区改变位置_A CS:010016C0:0100 MOV DI,020016C0:0103-14、用D命令观察程序执行前,存储区的内容_D ES:020015.用G命令设置断点为HLT指令处_G 10A16.再用D命令观察执行结果_D ES:0200将会观察到,ES:0200--ES:027F的内容全改变为FF。

题目二1.用A命令将已编写好的源程序进行编辑和汇编。

2.用E命令对DS:0200单元设置二位BCD码数据。

3.参照题目一的实验步骤,对上述程序进行调试和运行。

4.查看每一条指令执行的中间结果和最终结果,验证是否满足题目设计要求,若不满足,再用A命令对程序进行修改。

重新对程序进行调试和运行,直到结果正确为止。

题目三1.用A命令将已编写好的源程序进行编辑和汇编。

2.用E命令对DS:0200开始的平方表置0~9的平方值。

对DS:0210单元置0~9中的任一数。

3.参照题目一的实验步骤,对上述程序进行调试和运行。

4.查看每一条指令执行的中间结果和最终结果,验证是否满足题目设计要求,若不满足,再用A命令对程序进行修改,重新对程序进行调试和运行,直到结果正确为止。

附录一、调试程序DEBUG的使用DEBUG是专为汇编语言设计的一种调试工具,是汇编语言程序员必须掌握的调试手段。

一、如何调用DEBUG程序在PC DOS的提示符D:>下,可以打人如下命令:D:>DEBUGG[d:][path][filename[ext]][parm1][parm2]其中DEBUG是调试程序的文件名;后面是要调试的程序的文件标识符。

若在命令中规定了文件标识符,则在DOS把DEBUG程序调入内存后,DEBUG程序把要调试的程序(根据文件标识符)调入内存。

若在命令中没有规定文件标识符,则DEBUG程序或者与正在内存中的内容打交道;或可以用Name和Load命令,从盘上输入要调试的程序。

命令行中的[parm1(参数1)][parm2(参数2)]。

我们在后面结合具体的命令加以介绍。

在DEBUG程序调入后,出现提示符“—”。

说明现在系统在DEBUG程序的管理之下,所有DEBUG命令,也只有在出现此提示符后才有效。

二、DEBUG程序对寄存器和标志位的初始化在DEBUG程序启动后,它把各个寄存器和标志位,置成以下状态:1.段寄存器(GS DS ES 和SS)置于自由存贮空间的底部,也就是DEBUG 程序结束以后的第一个段。

2.指令指针(IP)置为0100H。

3.堆栈指针置到段的结尾处,或者是装入程序的临时底部,取决于哪一个更低。

4.余下的寄存器(AX BX CX DX BP SI和 DI)置为0。

但是,若调用DEBUG时包含一个要调试的程序文件标识符,则CX中包含以字节表示的文字长度,若文件大于64K,则文件长度包含在BX和CX中(高位部分在BX中)。

5.标志位都置为清除状态。

6.default的磁盘缓冲区置于代码段的80H。

注:若由 DEBUG调入的程序,具有扩展名.EXE,则DEBUG必须进行再分配。

把段寄存器、维栈指针置为程序中所规定的值。

三、有关DEBUG命令的一些共同信息:1。

DEBUG命令都是—个字母,后面跟有一个或多个参政。

2.命令和参数可以用大写或小写或混合方式输入。

3. 命令和参数间可以用定界符分隔。

然而定界符只是在两个邻接的16进制之间是必需的。

因此,下列命令是等效的;d cs:100 110d cs:100,1104.可以用按Ctrl Break键来停止一个命令的执行,返回DEBUG提示符。

5.每一个命令,只有按了ENTER键以后才有效,才开始执行。

6.若一个命令产生相当多的输出行,为了能在屏幕上当一行卷走以前读清楚它,可以在显示过程中,按Ctrl NumLock键,以暂停上卷;可以按任何一个字符来重新启动。

7.若DEBUG检查出一个语法错误,则显示具有错误的行和指示错误所在。

例如:d cs:100 cs:110error四、DEBUG的主要命令1.显示内存单元内容的命令(Dump Command)为了了解程序执行的结果,检查内存单元的内容是十分重要的。

此命令能检查指定范围的存贮单元的内容。

命令的格式为:D[地址] 或 D[范围]其中,D是命令字母,[地址]或[范围]都是为了指定要显示的存贮单元的范围。

存贮单元的内容用两种方式显示:一种是每一个存贮单元的内容(每一字节)用两位16进制数显示;另一种是用相应的ASCII字符显示,句号(.)表示不可显示的字符。

显示有两种格式,若是40列系统显示格式,每—行显示8个字节,若是80列显示格式,每一行显示16字节。

第8、9字节间有一连字符(—)。

显示命令有两种常用的格式:(1)格式为:D地址或 D若命令中有指定地址,则从指定地址开始,显示40H个字节(相应于系统的40列显示格),或80H个字节(相应于80列显示格式)。

若命令中没有指定起始地址,则从上一个D命令所显示的最后一个单元的下一个单元开始。

若以前没有使用过D命令,则从由 DEBUG初始化的段寄存器的内容,加上地址偏移量0100H作为起始地址。

若在命令中所打人的地址中,只包含起始地址的偏移量,则D命令认为段地址包含在DS中。

例如:对于80列的显示格式—D 100显示的起始地址由 DS内容(作为段地址)与100H(作为偏移量)组成。

共显示80H个单元的内容。

(2)显示指定范围的内容:D 范围在范围中包含起始地址和结束地址。

若输入的起始地址中,未包含段地址部分,则D命令认为段地址在DS中;而输入的结尾地址中,只允许有地址偏移量。

例如:-D DS:100 02002、修改存贮单元内容的命令此命令用于修改存贮单元的内容,它有两种基本格式:(1)用命令的内容表去代替指定范围的内存单元的内容E 地址内容表例如:E DS:100 F3”XYZ”8D内存单元DS:100到DS:104这5个单元的内容由表中给定的5个字节的内容(其中2个字节用16进制数表示,即F3、3D;另三个用字符表示,就是“XYZ”,用它们的ASCII码值代入)所代替。

(2)一个单元一个单元地连续修改方式E 地址在输入了上述命令,屏幕上显示指定单元的地址和原有的内容之后,可以采用以下几种操作中的一种:1、再输入一个字节的16进制数,以代替原单元中的内容,然后可以采取下面三种操作之一。

2、按空格键,则上一个替换要求完成,且显示下一个单元的地址和原有的内容,要修改的话,则输入两位16进制数,再按空格键盘······这样就可以连续地进行修改。

若某一单元的内容不需要修改而操作要进行下去,则可直接按空格键。

3、输入一个连接号(-),则又显示前一单元的地址和内容,若要修改的话,就输入一个字节的内容,然后再按“-”,则又显示前一个单元的地址和内容······这样,就可以连续地进行反向修改。

若所示的前一单元的内容不需要修改,可直接按“-”键。

4、按回车键结束此命令。

3、检查和修改寄存器内容的命令(Register Command)为了了解程序运行是否正确,检查寄存器内容的操作是十分重要的。

R命令有三种功能:(1)能显示CPU内部的所有寄存器的内容和全部标志。

(2)能显示和修改一个指定的寄存器的内容。

(3)能显示和修改所有标志位的状态。

下面分别予以介绍:1、命令格式:R则系统的响应为:A>DEBUG EXAMPLE4.EXE-rAS=0000 BX=0000 CX=004A DX=0000 SP=0064 BP=0000 SI=0000 DI=0000 DS=07B5 ES=07B5 SS=07C6 IP=0000 NV UP DI PL NZ NA PO NC 07C6:0000 BSC507 MOV AX,07C5前两行显示格式显示了所有CPU内部寄存器内容和全部标志的状态(其含意在下面介绍),第三行显示了现行CS:IP所指的指令的机器码以及汇编符号,这就是下条即将要执行的指令。

相关文档
最新文档