实验一 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。

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 的使用实验目的:1.学习使用.学习使用DEBUG DEBUG DEBUG程序的各种命令。

程序的各种命令。

程序的各种命令。

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

算数指令。

算数指令。

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

调试自编程序的方法。

调试自编程序的方法。

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

寄存器的用途和存储器组织及它们之间的关系。

寄存器的用途和存储器组织及它们之间的关系。

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

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

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

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

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

字符。

字符。

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

熟悉、使用DEBUG调试工具实验报告

熟悉、使用DEBUG调试工具实验报告

实验目的:借助DEBUG程序发现汇编语言程序的错误并加以改正实验过程:一,在debug环境下建立和汇编程序(1)进入debugC:\debug 回车(2)输入程序并汇编-A 100 回车0AF0:0100 mov dl,38 回车0AF0:0102 mov ah,2 回车0AF0:0104 int 21h 回车0AF0:0106 int 20h 回车0AF0:0108 回车(3)运行程序-g=1008Program terminated normally如果想分析该程序的指令,可使用反汇编命令U(4)反汇编-u 100,108 回车0AF0:0100 B238 MOV DL,30AF0:0102 B402 MOV AH,00AF0:0104 CD21 INT 210AF0:0106 CD20 INT 200AF0:0108 56 PUSH SI(5)将机器指令程序送到起始地址为200h的单元-e 200 b2,38,b4,02,cd,21,cd,20,56-g=2008Program terminated normally-二,常用debug命令(1)显示,修改寄存器内容显示所有寄存器内容格式:-r 回车功能:以十六进制形式显示cpu内部个寄存器的值;以符号形式显示标志寄存器的各标志位(除tf外)的值;并将CS:IP所指的内存内容反汇编成一条指令,可视为将要执行的指令。

如:-r 回车AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=0AF0 ES=0AF0 SS=0AF0 CS=0AF0 IP=0200 NV UP EI PL NZ NA PO NC0AF0:0200 B238 MOV DL,38知:cs=0AF0h,IP=0100h修改寄存器格式:-r 寄存器名回车-r dsDS 0AF:0AE0-rds的内容由原来的0af0h修改为0ae0h修改标志值格式:-rf例:-rfNV UP EI PL NZ NA PO NC -ov ng 回车将of,sf的值分别修改为1。

实验一 利用 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的使用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使用教程

实验一调试工具的使用方法训练一、实验目的1.熟悉调试工具DEBUG的使用方法。

2.理解汇编指令、存储单元和寄存器等有关概念。

3.能够对简单的汇编语言程序进行调试。

二、实验设备PC机一台。

三、实验内容及步骤DEBUG是DOS操作系统为汇编语言程序设计者和系统管理员提供的一个通用调试工具,利用DEBUG可以读写、传送、比较、查找和显示存储器单元内容,设置程序起始执行地址或断点,执行程序或分段执行程序,跟踪程序执行,显示处理器状态,汇编或反汇编程序等。

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

DEBUG只使用十六进制表示数据(十六进制数后不加“H”),屏幕的显示数据形式如下:1400:0100 24 65 6E 64 73 0D 0A 20 - 20 63 6F 64 65 20 20 24 *ends..code * 1400:0110 73 65 67 6D 65 6E 74 0D - 0A 20 20 20 20 20 20 24 segment.. * …………1400:0170 24 61 78 2c 30 0D 0A 09 - 20 20 20 20 70 75 73 68 *ax,0 push屏幕每行显示内容分为三部分,一行共显示十六个字节单元的内容。

第一部分是本行所显示的16个字节数据在存储器中的起始存放地址;第二部分是以十六进制显示的16个字节数据;第三部分是将本行所显示字节数据看作ASCII码时显示的字符,若某字节数据对应不可显示的ASCII码,则显示一个“.”字符代替该字节数据的显示字符。

DEBUG只有十几条单字母命令,功能强且易掌握,常用DEBUG命令如下:1)DEBUG的进入和退出进入DEBUG时,键入如下命令:H:\> DEBUG-“-”是DEBUG的命令提示符,表明已进入DEBUG状态。

在“-”提示符之后,可以键入DEBUG命令。

实验一熟悉使用调试工具软件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的使用
回答:
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)掌握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熟悉指令功能和寻址方式一、实验性质:验证型二、实验目的:掌握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勺使用一.实验目的掌握调试工具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调试程序的使用

实验一DEBUG调试程序的使用实验一、实验目的1.熟悉 DEBUG 调试程序中的常用命令。

2.学会在 DEBUG 下调试运行汇编语言源程序。

二、实验内容1.熟悉DEBUG常用命令的使用: A、U、D、E、R、G、T、L、W、Q常用命令。

2.在DEBUG下编写汇编语言程序,实现多字节(5个字节)十进制加法。

三、实验用设备仪器及材料硬件:计算机软件:DEBUG调试软件四.实验方法和步骤1.在开始菜单\命令提示符下,进入DOS环境。

2.在DOS目录下启动DEBUG。

3.熟悉DEBUG常用命令,详细记录每一步所用的命令及查看结果的方法和具体结果。

4.在DEBUG下编写程序,实现多字节十进制加法实验。

五.实验提示DEBUG常用命令A:编辑和汇编源程序。

格式:-A 地址U:反汇编验证源程序。

格式:-U 地址R:观察或修改寄存器的内容。

D:显示存储单元的内容。

格式:-D 地址E:修改存储单元的内容。

格式1:-E 地址格式2:-E 地址单元数据单元数据……G:设置断点运行源程序。

格式:-G=首地址末地址T:单步执行程序。

执行结束后显示 AX、BX、CS、IP 寄存器内容的变化,并显示下一条要执行的指令的地址和内容。

格式:-T=地址或者-T=地址值N:文件命名。

格式:-N *.comL:将某个文件或特定磁盘扇区的内容加载到内存。

格式:-L 地址W:将程序写到磁盘。

如果不指定 address,Debug 程序将从 CS:100 开始。

在写盘操作之前要用R命令修改bx,cx的内容(存放写的字节数)。

Q:退出本次实验的内容均在 DEBUG 下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。

实验一--掌握DEBUG-的基本命令及其功能

实验一--掌握DEBUG-的基本命令及其功能

实验一--掌握DEBUG-的基本命令及其功能实验一掌握DEBUG 基本命令及其功能【上篇】查看CPU和内存,用机器指令和汇编指令编程一.实验目的:掌握DEBUG 的基本命令及其功能掌握win7 win8 使用DEBUG功能二.实验内容:1. 预备知识:Debug的使用(1) 什么是Debug?Debug是DOS、Windows都提供的实模式(8086方式)程序的调试工具。

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

(2) 我们用到的Debug功能●用Debug的R命令查看、改变CPU寄存器的内容;●用Debug的D命令查看内存中的内容;●用Debug的E命令改写内存中的内容;●用Debug的U命令将内存中的机器指令翻译成汇编指令;●用Debug的T命令执行一条机器指令;用Debug的A命令以汇编指令的格式在内存中写入一条机器指令。

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

我们在进入Debug前,应先进入到DOS方式。

用以下方式可以进入DOS:①重新启动计算机,进入DOS方式,此时进入的是实模式的DOS。

②在Windows中进入DOS方式,此时进入的是虚拟8086模式的DOS。

三.实验任务解决方案1. 从网上下载Dosbox和debug.exe(文件夹中有)。

2. d ebug.exe放在D:根目录,然后安装,安装完成以后,点击快捷方式进入Dos界面:3.输入mount c d:\ 接着输入c:01 d8 add ax,bx89 c3 mov bx,ax01 d8 add ax,bxb8 1a 00 mov ax,001AH bb 26 00 mov bx,0026H 00 d8 add al,bl00 dc add ah,bl00 c7 add bh,alb4 00 mov ah,000 d8 add al,bl04 9c add al,9CH提示:可用E命令和A命令以两种方式将指令写入内存。

实验一利用debug调试程序调试程序段

实验一利用debug调试程序调试程序段

实用标准实验一利用DEBUG调试程序调试程序段1.实验目的(1)熟悉DEBUG有关命令的使用方法。

(2)利用DEBUG掌握有关指令的功能。

(3)利用DEBUG运行简单的程序段。

2.实验容、实验步骤(1)进入和退出DEBUG程序。

进入DEBUG程序,Windows中在命令提示符下进入DEBUG如图:退出DEBUG如图:(2)学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。

对于U命令、N命令、W命令等,也应试一下。

?R命令:1)显示所有寄存器容:格式:-R↙功能:以十六进制形式显示CPU部各寄存器的值:以符号形式标志寄存器各标志位(除TF外)的值,并将CS:IP所指的存容反汇编成一条指令,可视为将要执行的指令。

从显示可知,CS=11A7H, IP=0000H.2)修改寄存器格式:-R 寄存器名↙功能:DEBUG首先显示指定寄存器的当前值,并在下一行首给出提示“:”,等待用户输入新值,若直接回车相当于不个忙寄存器的值。

由显示可知,用E命令修改,再查看可发现数据已经被改了。

3)修改标志值格式:-RF↙功能:先用符号显示当前各标志位的值,并在末尾给出提示符“-”,然后等待用户以符号形式输入新的标志值,对输入的次序没有要求,各标志值之间也可没有空格;若直接在“-”之后回车,则保留原标志值。

由显示可知,相应的标志值改变了。

?A命令格式:-A 存地址↙执行汇编命令A后,相应的指令对应的机器码将会依次存放在指定的存单元中,并提示下一地址。

?U命令格式:-U 存块↙由显示可知,反汇编命令U从指定的存地址开始对存块进行反汇编,并分三列显示反汇编的结果。

?N命令格式:-N【e】【PATH】文件名.扩展名↙?W命令L 命令格式:-W/L 存地址由显示可知,命令N为命令W和命令L指定文件,而命令W把指定存块的容写入命令N指定文件中,命令L则将其文件装入存地址中。

?T命令1)单步执行格式:-T=存地址↙由显示可知,T命令将存地址的段地址和偏移地址修改CS和IP,然后执行由CS:IP指向的存单元处的一条指令,显示各寄存器的值,并反编下一条指令,然后返回DEBUG状态。

实验一:熟悉和使用debug的调试环境

实验一:熟悉和使用debug的调试环境

实验⼀:熟悉和使⽤debug的调试环境实验任务⼀:debug的使⽤1、R命令:查看、改变CPU寄存器的内容:通过r命令查看AX,BX,CX,DX,CS,IP这六个寄存器的内容,如:CS=073F,IP=0100,则内存073F:0100处的指令位CPU当前要读取、执⾏的命令。

2、D命令:查看内存器中的内容(形式为”段地址:偏移地址“的形式)。

如:⽤D命令查看内存1000:0处的内容:3、接着再使⽤E命令(改写内存中的内容)来修改内存1000:0~1000:9单元中的内容:第⼀次错误出现的原因是在内存单元后没有打空格⽽与修改内容⼀起写所导致的错误。

实验任务⼆:1、⽤A命令将下⾯程序段写⼊内存,⽤T命令逐条执⾏观察CPU中相关寄存器中内容的变化。

程序段如下:再⽤T命令逐条执⾏观察CPU中相关寄存器中内容的变化:2、将下⾯3条指令写⼊从2000:0开始的内存单元中,利⽤这3条指令计算2的8次⽅程序段:使⽤T指令查看使⽤T指令要在后⾯添加需要查看的内存单元t=2000:0指的是需要逐条查看2000:0内存单元的寄存器中内容的变化使⽤t指令最后结果为:可以看出寄存器AX的值为100,因为100(16)=256(10),得到最终2的8次⽅结果为2563、查看Rom中⽣产⽇期并试图修改先⽤d命令查看这段内存单元:如截图我尝试修改内存单元 fff0:00f0中的数据,再次调⽤d命令查看内存单元的内容发现内存单元中的值没有什么变化了解到PC主板上的ROM是⼀个只读寄存器,只⽤读取内存单元的值⽽不能改变内存单元中的值。

4、向内存从b8100h开始的单元填写数据:总结:经过这⼀次的实验以及⾃⼰动⼿操作之后,了解了部分的debug中的命令,以及汇编程序指令的编写⽅式,没有了刚开始接触汇编时的⽣涩感以及对汇编这门学科的陌⽣感,也知道了debug的调试环境,这⼀次做了的⼏个实验,亲⼿操作起来感觉收获还是很⼤的,感觉汇编的⼀个好处就是⼀段程序码的运⾏可以⼀步⼀步的查看,了解每⼀的值的改变,也通过这次汇编开始慢慢的熟悉汇编这门学科了。

熟悉DEBUG调试环境实验

熟悉DEBUG调试环境实验

熟悉DEBUG调试环境实验实验⼀、Debug调试姓名:孙杨威学号:12281201班级:计科1202班任课教师:李济⽣⼀、实验⽬的1.进⼀步学习汇编语⾔基本指令使⽤⽅法;2.学习DEBUG调试⼯具的基本使⽤⽅法;掌握debug调试命令a、u、r、d、t、g3.等逐条观察程序指令的执⾏过程,理解指令的功能,理解程序⾃动、顺序地执⾏的概念,实践其过程(重点)。

⼆、实验题⽬1.编写、输⼊⼀个32位⼆进制数相加程序,逐条执⾏指令,观察指令执⾏情况。

2.使⽤已经过汇编和连接的⼩程序(t3-2.exe),将其装⼊内存,逐条执⾏指令,观察执⾏过程和结果。

在实验过程中,使⽤D命令修改XXX和YYY单元中的数据,再重新计算其结果。

三、实验过程1.启动计算机的WINDOWS操作系统,在开始菜单中找到“运⾏”,输⼊“cmd”后回车,启动ms-dos command程序,再在该程序内输⼊“DEBUG”并按回车,即启动DEBUG调试程序。

2. 开始编程可以看到,对32位数的低16位操作时,存放地址是073F:0100,指令长度为3,即在寄存器类型的指令上增加1,在进⾏ADC加法指令时,考虑到了进位CF,所以指令长度为4。

使⽤r命令后,可以看到指令执⾏前各寄存器的内容,CS:IP的内容为0100,执⾏的指令为MOV AX,F271,操作数寻址为⽴即数寻址,内存单元的值为0F271。

使⽤t命令单步执⾏指令后,所得结果如图执⾏过程中,CS:IP的内容随指令长度的变化依次增加,标志位寄存器只有AF,PF,CF的值在计算过程中有变化,最后AF=AC,说明低4位向⾼4位有进位,⽽CF=CY,说明最⾼位有进位,OF=NV,表明计算结果没有溢出。

对程序使⽤r命令查看寄存器AX,DX的值,如下图可知,AX = 4909,DX = 07D6,CF=1,说明运算结果低16位为4909,⾼16位为07D6,还有⼀位进位1,即结果是107D64909,计算正确。

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

实验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所示),并且标志位值的键入顺序可任意。

-rfNV UP EI PL NZ NA PO NC --rfNV UP EI PL NZ NA PO NC -OV CY DI-RFOV UP DI PL NZ NA PO CY -3. 存储器单元访问命令①显示存储器单元命令 D格式:D[<地址范围>]功能:显示指定地址范围内的存储区数据,包括十六进制数据形式及其对应的ASCII码字符显示。

例1-3 显示从段地址1000中偏移量从10H~3fh存储单元的内容-d 1000:10 3f1000:0010 C0 E8 84 00 B0 2C AA F6-06 A6 56 FF 75 1E E8 F3 .....,....V.u...1000:0020 FE EB 28 57 BF 9D 56 E8-12 00 5F E8 0E 00 B0 3A ..(W..V..._....: 1000:0030 AA BE 9D 56 B9 04 00 AC-AA E2 FC C3 E8 D5 FE 8A ...V............可以使用 D 段寄存器(段地址):偏移地址的格式显示内存中从指定地址单元开始的128个内存单元的内容。

例1-4 显示从物理地址从10010开始的存储单元的内容-d 1000:101000:0010 C0 E8 84 00 B0 2C AA F6-06 A6 56 FF 75 1E E8 F3 .....,....V.u...1000:0020 FE EB 28 57 BF 9D 56 E8-12 00 5F E8 0E 00 B0 3A ..(W..V..._....: 1000:0030 AA BE 9D 56 B9 04 00 AC-AA E2 FC C3 E8 D5 FE 8A ...V............1000:0040 D0 E8 D0 FE 8A F0 E8 02-00 8A C2 8A E0 D0 E8 D0 ................1000:0050 E8 D0 E8 D0 E8 E8 02 00-8A C4 24 0F 04 90 27 14 ..........$...'.1000:0060 40 27 AA C3 E8 AD FE 3C-0A 75 E0 C3 BB 67 48 E8 @'.....<.u...gH.1000:0070 E1 03 E8 AD 03 B0 2C AA-E8 99 FE 98 8B D0 8A E0 ......,.........1000:0080 B0 2B 0A E4 79 04 B0 2D-F6 DC AA 8A C4 EB BC E8 .+..y..-........②写存储器单元命令 E格式:E <地址> [<字符串>]功能:逐个修改指定单元内容或将字符串写入指定的一组连续单元。

输入E <地址> [<字符串>]后按【Enter】键,出现提示光标后有两种选择,一是输入数据然后按空格键完成当前存储单元内容的修改,并使光标指向下一个存储单元;二是不输入数据直接按空格键跳过对该存储单元的修改,并使光标指向下一个存储单元。

输入完毕后按【Enter】键结束E命令的操作。

例1-5 将字符串“string”写入以142H为起始地址的存储区-e 142 'string'-d 142138A:0140 73 74 72 69 6E 67-00 00 00 00 00 00 00 00 string........138A:0150 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................例1-6 逐个单元向彩显视频缓冲区写入41h、42、41、42,彩显视频缓冲区的段地址为B800H,数据写入后立即显示出红底高亮闪烁绿色的字符串ABCD。

-e b800:70B800:0070 20.41 07.ca 20.42 07.ca 20.43 07.ca 20.4.汇编与反汇编命令汇编命令A和反汇编命令U是常使用的DEBUG命令。

①汇编命令 A 以汇编指令的形式在内存中写入机器指令格式:A [<起始地址>]功能:逐行汇编程序,主要用于小段程序的汇编说明:使用A命令汇编程序,不允许程序中出现标号和伪指令,但DOS的DEBUG允许使用DB和DW这两条伪指令。

如果没有给出起始地址,汇编后的程序代码从指令指针寄存器IP的值所指定的地址开始存放。

按两次回车键可推出汇编命令A的状态。

例1-7 汇编一段程序,该功能是在屏幕上输出一个大写的字母‘A’-a 100138A:0100 mov dl,41138A:0102 mov ah,02138A:0104 int 21h138A:0106 int 20h138A:0108-②反汇编命令 U格式:U [<地址范围>]功能:在指定的地址范围内,将二进制机器指令逐条翻译成汇编语言符号指令例1-8 例1-7中汇编的程序进行反汇编-a138A:0100 mov dl,41138A:0102 mov ah,02138A:0104 int 21h138A:0106 int 20138A:0108-u138A:0100 B241 MOV DL,41138A:0102 B402 MOV AH,02138A:0104 CD21 INT 21138A:0106 CD20 INT 205. 执行程序命令在DEBUG下,可以完整的执行程序、分段执行程序或单步执行程序①执行程序命令 G格式:G [=<程序起始地址>] [<断点>…]功能:完整或分段执行程序说明:G命令可以从头至尾完整地执行程序,如果G命令带有断点参数,则执行到断点地址时暂停并显示当前个寄存器状态,断点最多允许设置100个。

程序正常结束时显示“Program terminated normally”。

例1-9 执行例1-7中汇编的程序-g =100AProgram terminated normally②跟踪执行命令 P 和 T格式:P [=<地址>] [<跟踪参数>]T [=<地址>] [<跟踪参数>]功能:跟踪命令P和T可以逐条跟踪指令的执行,以便调试程序。

说明:每条指令执行后都将显示各寄存器的当前值。

P命令与T命令的差别是:P命令按程序书写的指令为单位,一次跟踪完一条书写指令(执行一组相关命令),而T命令按存储单元中存放的指令为单位,一次跟踪一条指令。

相关文档
最新文档