文档库 最新最全的文档下载
当前位置:文档库 › 实验一 熟悉使用调试工具软件DEBUG

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

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

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

编写汇编语言时,如果源程序中存在语法或格式上的错误,在汇编和链接过程中都可以被发现并得以纠正。但是如果在源程序中存在逻辑错误时,就只能通过调试来纠正了。常用的调试工作软件是DEBUG。DEBUG提供了修改寄存器和内存单元内容的命令,可以方便地修改寄存器及内存单元的内容,为调试和修改程序带来的方便。

1、DEBUG的启动

在windows环境下,点击开始栏里的运行窗,输入debug。

2、DEBUG的主要命令

这里只介绍常用的几个debug命令,其他命令请参考相关文献。

1)R命令

R命令作用:观看和修改寄存器的值。

在提示符“-”下输入命令R,DEBUG将会显示出当前所有寄存器和标

志位的状态。

在R后面输入相关的寄存器名称,可修改相关的寄存器值。

2)D命令

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

在提示符“-”下执行命令D,可观察当前存储单元的内容。

用命令D显示内存区域的内容时,最左边是内存的起始地址,中间以十

六进制的形式显示内存值,最右边是以ASCII码的形式显示内存值。每

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

命令D可以带参数也可省略参数。设DEBUG启动时DS的值为X,当

省略参数时,命令D显示内容以X:100为起始,每次显示128个字节

的内容。以后再执行不带参数的命令D时,DEBUG将按上次的位置接

着显示下去。

带参数时DEBUG能够显示指定地址范围的内容。带参数的方式有三种:

方式一:d [起始位置]。DEBUG从起始位置开始显示128个字节的内容。

在提示符“-”下执行命令D 1AF5:100。观看命令执行结果。

方式二:d [起始位置] [结束位置]。DEBUG从起始位置开始一直显示到

结束位置。在提示符“-”下执行命令D DS:100 1FF。观看命令执行结果。

方式三:d [起始位置] [L长度],长度以L参数为标识。DEBUG从起始

位置开始显示指定长度的内容。在提示符“-”下执行命令D DS:100 L10。

观看命令执行结果。

3)E命令

E命令作用:改变内存单位的内容。

E命令的使用方式为:E [起始位置]。在提示符“-”下输入以下命令:E 1AF5:100。

DEBUG首先显示[1AF5:0000]的内容00.,这时可以修改该字节的值。如果还要修改后续的内容,可以按空格键继续。当要跳过某个字节时,可以按连续的两个空格跳到后一个字节去。

4)A命令

A命令作用:输入汇编指令。

以下的程序要在屏幕上显示“ABCD”四个字符。

首先用E命令将“ABCD$”四个字符预先放在内存CS:200处,然后执行A100命令输入汇编程序代码:

MOV AX,CS

MOV DS,AX

MOV DX,200

MOV AH,9

INT 21

INT 20

(说明:前两行汇编指令用于将段寄存器CS的值赋给段寄存器DS。第三到第五行汇编代码的作用是显示以“$”为结尾的字符串。最后一行用于结束程序。

5)G命令

G命令作用:执行汇编指令。

G命令的使用方法是:G [=起始地址] [断点地址],意思是从起始地址开始执行到断点地址。如果不设置断点,则程序一直运行到中止指令才停止。

6)U命令

U命令作用:对机器代码反汇编显示。

U命令的使用方法是:U [范围]。如果范围参数只输入了起始地址,则只对20H个字节的机器代码反汇编。

7)T命令

T命令作用:执行汇编程序,单步跟踪。

T命令的使用方式是T [=地址] [指令数]。如果忽略“地址”的话,T命令从CS:IP处开始运行。“指令数”是要单步执行的指令的数量。

8)P命令

P命令作用:执行汇编程序,单步跟踪。

与T命令不同的是:P命令不会跟踪进入子程序或软中断。 P命令的使用方式与T命令的使用方式完全相同。

9)Q命令

Q命令的作用是退出DEBUG,回到DOS状态。从DOS返回WINDOWS 使用EXIT命令。

10)C命令

C命令作用:将两块内存的内容进行比较。

C命令的使用方式为:C [范围] [指定地址],意思就是将指定范围的内存区域与从指定地址开始的相同长度的内存区域逐个字节进行比较,列出不同的内容。

例:-C 100, 10F 300(该命令将100H~10FH的数据块与300H~30FH 的内存数据块进行比较,不同的内容会被列出来,相同的则不处理)

实验内容:

1、数据传送指令的使用练习。

在DEBUG环境中,利用A命令输入以下程序后,使用T命令观察每条指令的运行结果。(DEBUG中默认操作数为十六进制)

MOV SP, 00B0

MOV AX, 1234

MOV BX, 5678

MOV CX, 9ABC

MOV DX, DEF0

MOV WORD PTR [2000], 5566

MOV DI, [2000]

PUSH AX

PUSH BX

PUSH CX

PUSH DX

2、算数运算指令的使用练习。

在DEBUG环境中,利用A命令输入以下内容,然后利用T命令单步运行,分析每条指令后的结果。

MOV AX, 1234

MOV BX, 5678

ADD AX, BX

MOV CX, 9ABC

SUB CL, CH

MOV BYTE PTR [2000],55

INC BYTE PTR [2000]

MOV AX, 0020

MOV BL, 08

DIV BL

MOV AL, 02

MOV CL, 10

MUL CL

MOV AL, 06

CBW

MOV AX, 1050

CWD

实验报告要求:

1、记录实验步骤和出现的现象,按照要求记录显示结果。

2、比较实验记录和理论分析的结果是否相同,如果不同找出差别并分析原因。

3、总结本次实验。

实验一-DEBUG的使用(1)

实验一DEBUG的使用 一、实验目的 熟练掌握DEBUG的常用命令以及使用DEBUG调试程序的一般方法。 二、实验内容 1.熟悉DEBUG的常用命令 通过CMD命令进入DOS方式,运行DEBUG程序,练习DEBUG常用命令(DEBUG 常用命令详细说明见五和六)。 2.使用DEBUG调试程序 (1)用CMD命令进入DOS方式。 (2)运行DEBUG程序。 (3)使用A命令将以下笑脸程序逐行输入。 MOV DL,1 MOV AH,2 INT 21H INT 20H (4)使用T命令逐条指令运行笑脸程序,观察每条指令执行前后相关寄存器的内容变化情况。 (5)使用G命令连续运行笑脸程序,观察程序运行结果。 (6)使用R命令修改寄存器BX和CX的内容为笑脸程序的长度。 (7)使用N命令将笑脸程序命名为https://www.wendangku.net/doc/e69059008.html,。 (8)使用W命令将笑脸程序写到指定磁盘的指定路径目录中。 (9)退出DEBUG,进入笑脸程序所在目录。 (10)运行笑脸程序https://www.wendangku.net/doc/e69059008.html,。观察程序运行结果。 (11)用DEBUG调试已生成的https://www.wendangku.net/doc/e69059008.html,程序。 三、实验要求 认真完成实验每一步骤,详细记录实验过程、现象和结果,及时整理实验报告。

四、实验作业 1.用A命令或E命令将笑脸程序中第1条指令中的立即数修改为46,重复步骤(4)~(10),观察程序运行结果,分析为什么? 如果要将笑脸程序修改为显示别的字符程序,如何修改程序? 2.如果想无限循环显示笑脸,如何修改程序? 3.写出实验体会。 五、DEBUG简介 DEBUG是一种面向汇编语言的动态调试工具,共有19条命令。DEBUG提供了可以跟踪、测试程序的环境和条件,使编程者能对. EXE和.COM文件的执行进行动态跟踪调试,能够较快地查找出文件中的逻辑错误和检查程序的运行结果。此外,也可以在进入DEBUG后直接用小汇编语言(ASM)编写、调试一些小程序。 Microsoft DEBUG命令的具有以下共性: (1)DEBUG提示符为“-”。 (2)任何命令都以一个英文字母开头,后面跟一个或多个参数。 (3)命令字母和参数可用大写、小写或混合形式。 (4)命令字母和参数中相邻两个十六进制数之间必须用逗号或空格分开,其它各部分之间有无空格或逗号都可以。 (5)执行任何命令期间都可用Ctrl+Break或Ctrl+C结束命令的执行。 (6)键入命令字母和参数后必须按回车键才能使命令有效。 (7)在执行某命令期间,可按Ctrl + NumLock键暂停显示以便观察。再按任何其它键,则继续显示。 (8)DEBUG检查输入命令的语法错误,即如果输入的命令有错误,将显示错误信息。 (9)在DEBUG程序状态下,控制键和DOS支持的编辑键继续有效。 (10)DEBUG的启动方式有两种: 1)在DOS提示符下键入: DEBUG ADD.EXE (“”表示回车键,下同) 将出现DEBUG状态的提示符“-”,系统这时已处于DEBUG程序的管理下,并把指定的可执行文件ADD.EXE调入内存。此时,用户可在提示符

实验一 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,1234 MOV BX,5678 XCHG AX,BX MOV AH,34 MOV AL,56 MOV CX,75AB XCHG AX,CX 2)用U命令检查键入的程序,特别注意左边的机器码。 3)用T命令逐条运行这些指令,每运行一行检查并记录有关寄存器及IP的变化情况。并注意标志位有无变化。 2、加减法指令: 1)用A命令在内存200H处键入下列内容:

DEBUG调试程序的应用实验的报告.doc

电子电气工程学院学生实验报告 专业级 1 班 2 组姓名学号 课程名DEBUG 调试程序的应用指导教师成绩 一,实验预习 实验序号1实验题目DEBUG调试程序的应用预习日期 要求: 1.实验目的; 2,实验原理; 3,画出实验原理图; 4 实验设备; 5,预习内容(该实验完成的内容);6,记录表格设计 一实验目的 1、了解 DEBUG调试程序常用命令的基本格式、主要功能和使用方法。 2、熟悉进入或退出DEBUG调试程序运行界面的步骤。 3、掌握用DEBUG调试程序进行程序编辑、调试、运行、结果检查的基本方法。 4、进一步汇编语言上机环境及基本操作 二实验原理 1,启动 DEBUG程序,在 DEBUG环境下建立和汇编程序2,输入程序并汇编 A 2,_A 100 169C(CS):0100(ip) MOV DL, 33 ;DEBUG默认 16 进制数 169C: 0102 MOV AH,2 ;dos 的 2 号功能调用 169C: 0104 INT 2l ;功能调用 169C: 0106 INT(中断)20 ;中断 169C: 0108 ;回车结束程序的输入 3.运行程序_G=0100(全速运行)得到 3 4,用反汇编命令_U。然后分析该程序的指令:33 的 ascll 的值为 3, MOV 是将原操 作数送到DL 中( DL 为目标操作数)。 5,将机器指令程序送到起始地址为200H 的若干单元 6,执行机器指令程序_G=0200得到 3 7,执行 T 命令,实现单步运行。 8,执行 D 命令查看存储单元的原值。 E 是修改内存, R 显示修改内存命令。 四实验设备 微型计算机一台

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

《微型计算机技术实验》 实验一:调试工具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

实验一-Keil软件的使用及简单程序的调试方法

实验一Keil软件的使用及简单程序的调试方法 一、实验目的 掌握Keil的使用方法和建立一个完整的单片机汇编语言程序的调试过程及方法。 二、实验器材 计算机1台 三、实验内容 1.Keil的使用方法。 2.建立一个单片机汇编语言程序的调试过程及方法 四、实验步骤 1.Keil的使用方法。Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和C 语言的程序设计,界面友好,易学易用。启动Keil 后的界面如下:

几秒钟后即进入Keil的编辑界面。用户便可建立项目及应用程序。 2.简单程序的调试方法 Keil是通过项目工程来管理汇编程序的。因此在调试程序前必须建立一个工程,工程名称及保存位置由用户来指定,注意每位同学的工程名称用“学号姓名实验*”来命名。 (1)建立一工程 单击Project菜单,在弹出的下拉菜单中选中New Project选项。并在弹出的对话框中确定保存的位置及工程名称。 又弹出一对话框,要求用户选择相应的硬件CPU及相关设置。选择Atmel公司的AT89C51单片机。如下图所示

单击“确定”后在弹出的对话框中行选择“否”即工程建好了,但该工程没有任何语句,需要再建一个程序文件并将其添加到此工程中。 (2)建一文件 单击“File”/“New”命令,则弹出文件的编辑窗口,此时该文件还没有指明其文件名称及保存位置,该文件还没有加载到所建立的工程中。单击“File”/“Save”命令在弹出的对话框中指明文件的类型为.ASM汇编型及文件名后单击“保存”即可进行汇编源文件的编辑。如下图所示。 (3)将文件添加到工程中 单击“T arget 1”前的“+”号则展开后变成“-”号,并右键单击“Source Group 1”在弹出的下拉菜单中执行“Add Files to Group ‘Source Group 1’”命令并弹出对话框在该对话框中的“文件类型”下拉列表中选择“Asm source file”后找到要添加的文件名并选中,单击“Add”即可。

实验一 RFID设备调试及软件开发_学

实验一RFID读写器调试 学号: 姓名: 一、实验目的 1、学习各类RFID读卡器的使用。 2、掌握RFID读卡器程序设计的方法。 3、理解基于QT的RFID案例程序。 二、实验内容 调试CBT-IOT赛百特物联网实验箱HF高频读卡器,对ISO14443A卡进行识别、数据操作,并分析其通信协议。 调试FR105 HF高频读卡器,对ISO15693、ISO14443A卡进行识别,以及数据操作,并分析其通信协议。 调试FR1200 UHF超高频读卡器,对ISO18000-6C卡进行识别,以及数据操作,并分析其通信协议。 调试基于各种RFID读卡器的QT程序,包括电子钱包、公交卡充值、上班刷卡考勤系统、车流量统计、药品出入库、电子锁控制等应用,分析程序与读卡器之间的串口通信。

三、实验预备知识 1、CBT-IOT实验箱HF高频读写器 CBT- IOT实验箱HF板载模块特点: ●工作频率:13.56MHz ●芯片:MF RC531(高集成非接触读写卡芯片) ●支持ISO/IEC 14443A/B和MIFARE经典协议 ●支持mifare1 S50等多种卡类型 ●最大工作距离:100mm,最高波特率:424kb/s ●支持lCrypto1加密算法并含有安全的非易失性内部密匙存储器 ●处理器 STM8S105高性能8位架构的微控制器,主频24MHz ●通信方式:串口TTL,可直接插接无线通讯模块组网开发,多模块无线组网通讯●电源:DC 5V 串口设置:波特率115200bps,数据位8,停止位1,无校验位 通信协议: SOF Sensor typle Sensor id Cmd id Data Exten Data END 2Byte 1Byte 1Byte 1Byte 6Byte 2Byte 1Byte 说明: SOF:固定为0xEE 0xCC,标志一帧的开始。 Sensor typle:传感器类型,RFID为0xFE。 Sensor id:固定为0x01,为RFID读卡器的编号。 Cmd id:命令ID,0x01为充值,0x02为扣款,0x03为查询。

实验一 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 显示所有寄存器的内容 -r AX=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 ax AX 0200 100 -r AX=0100 BX=0000 CX=0000 DX=0041 SP=FFEE BP=0000 SI=0000 DI=0000

实验一调试程序DEBUG的使用实验报告

南昌理工学院实验报告 二O一二年月日 课程名称:微机原理与接口技术实验名称:调试程序DEBUG的使用班级:姓名:同组人: 指导教师评定:签名: 【一、实验名称】 调试程序DEBUG的使用 【二、实验目的】 1.掌握汇编程序的编辑,编译,连接和执行的全过程; 2.学习和掌握用DEBUG 调试程序的方法。 【三、实验内容和原理】 1.用编辑软件,输入以下汇编语言源程序: DAT SEGMENT A D B 20 ;(自定) B DB 15 ;(自定) Y DB 3 DUP(0) Z DB 0,0 DAT ENDS STA SEGMENT STACK DW 50 DUP(?) STA ENDS COD SEGMENT ASSUME CS:COD,DS:DAT STAR PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DAT MOV DS,AX MOV AX,STA MOV SS,AX MOV AL,A MOV Z,AL MOV Z+1,AL CALL SUB1 MOV AL,B MOV Z,AL MOV Z+1,AL CALL SUB1 MOV AL,A MOV Z,AL MOV AL,B MOV Z+1,AL CALL SUB1 ADD WORD PTR Y,AX ADC BYTE PTR[Y+2],0 RET STAR ENDP SUB1 PROC MOV AL,Z MOV AH,Z+1 MUL AH ADD WORD PTR Y,AX ADC BYTE PTR[Y+2],0 RET SUB1 ENDP COD ENDS END STAR

实验一 Keil软件的使用及简单程序的调试方法

实验一 Keil软件的使用及简单程序的调试方法 一、实验目的 掌握Keil的使用方法和建立一个完整的单片机汇编语言程序的调试过程及方法。 二、实验器材 计算机1台 三、实验内容 1.Keil的使用方法。 2.建立一个单片机汇编语言程序的调试过程及方法 四、实验步骤 1.Keil的使用方法。Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和C 语言的程序设计,界面友好,易学易用。启动Keil 后的界面如下: 几秒钟后即进入Keil的编辑界面。用户便可建立项目及应用程序。 2.简单程序的调试方法 Keil是通过项目工程来管理汇编程序的。因此在调试程序前必须建立一个工程,工程

名称及保存位置由用户来指定,注意每位同学的工程名称用“学号姓名实验*”来命名。 (1)建立一工程 单击Project菜单,在弹出的下拉菜单中选中New Project选项。并在弹出的对话框中确定保存的位置及工程名称。 又弹出一对话框,要求用户选择相应的硬件CPU及相关设置。选择Atmel公司的AT89C51单片机。如下图所示 单击“确定”后在弹出的对话框中行选择“否”即工程建好了,但该工程没有任何语句,需要再建一个程序文件并将其添加到此工程中。 (2)建一文件 单击“File”/“New”命令,则弹出文件的编辑窗口,此时该文件还没有指明其文件名称及保存位置,该文件还没有加载到所建立的工程中。单击“File”/“Save”命令在弹出的对话框中指明文件的类型为.ASM汇编型及文件名后单击“保存”即可进行汇编源文件的编辑。如下图所示。

实验一 利用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】【PA TH】文件名.扩展名↙ W命令L命令 格式:-W/L 内存地址 ●由显示可知,命令N为命令W和命令L指定文件,而命令W把指定 内存块的内容写入命令N指定文件中,命令L则将其文件装入内存地址中。 T命令 1)单步执行 格式:-T=内存地址↙ ●由显示可知,T命令将内存地址的段地址和偏移地址修改CS和IP,然 后执行由CS:IP指向的内存单元处的一条指令,显示各寄存器的值,并反编下一条指令,然后返回DEBUG状态。

实验一调试程序DEBUG的使用实验精选报告.doc

南昌理工学院实验报告 二 O 一二年月日 课程名称:微机原理与接口技术实验名称:调试程序 DEBUG 的使用 班级:姓名:同组人: 指导教师评定:签名: 【一、实验名称】 调试程序 DEBUG的使用 【二、实验目的】 1.掌握汇编程序的编辑 ,编译 ,连接和执行的全过程; 2.学习和掌握用 DEBUG 调试程序的方法。 【三、实验内容和原理】 1.用编辑软件 ,输入以下汇编语言源程序: DATSEGMENT ADB20;( 自定 ) BDB15;( 自定 ) YDB3DUP(0) ZDB0,0 DATENDS STASEGMENTSTACK DW50DUP(?) STAENDS CODSEGMENT ASSUMECS:COD,DS:DAT STARPROCFAR PUSHDS XORAX,AX PUSHAX MOVAX,DAT MOVDS,AX MOVAX,STA MOVSS,AX MOVAL,A MOVZ,AL MOVZ+1,AL CALLSUB1 MOVAL,B MOVZ,AL MOVZ+1,AL CALLSUB1 MOVAL,A MOVZ,AL MOVAL,B MOVZ+1,AL CALLSUB1 ADDWORDPTRY,AX ADCBYTEPTR[Y+2],0 RET STARENDP SUB1PROC MOVAL,Z MOVAH,Z+1 MULAH ADDWORDPTRY,AX ADCBYTEPTR[Y+2],0 RET SUB1ENDP CODENDS ENDSTAR

2.通过编译 ,连接形成可执行文件; 3.用 DEBUG 将可执行文件调入 ,并进行调试; (1)用 D 命令观察数据区在内存中的具体内容,记录单元 A 和 B 的具体地址; (2)用 U 命令对目标代码反汇编 ,观察反汇编后的结果 .注意发现源程序的起始位 置 ,并记录这个起始地址; (3)用 T 命令作单步跟踪调试 .比较每条指令执行后的结果和原来的理解是否一致 . 得出程序运行的结果 :它们是写在什么单元 ,具体内容是什么,并判断结果是否正确; (4)在子程序 SUB1 的入口处设一断点 ,用 G 命令执行程序,在断点处观察堆栈的 内容 ,比较堆栈的内容和程序返回地址是否一致; (5)用 E 命令修改单元 A,B 的内容 ,重新执行程序 ,并记录结果; (6)用 M 命令和 A 命令对程序进行修改 :将主程序中最后两条指令 (ADD 和 ADC) 修改为一条 CALLSUB1 指令 ,重新执行程序; (7)退出 DEBUG ; 4.重新使用编辑软件 ,把源程序最后一句中的 STAR 去掉 .再次生成可执行文件 ,并用 DEBUG 调入内存 .当使用 U 命令时 ,显示的结果与前一次 (未加 STAR) 的结果有何不同 ? 【四、实验条件】 微型计算机一台,软件MASM 【五、实验过程】 根据实验内容,按步骤完成。 【六、实验结果】 (1) U 命令对目标代码反汇编 ,注意发现源程序的起始位置 ,并记录这个起始地址。 答:源程序起始地址: 1512:0000H。 (2)D 命令观察数据区在内存中的具体内容,记录单元 A 和 B 的具体地址。 答: 150A:0000H 是 A 的具体地址, 150A:0001H 是 B 的具体地址。 (3)T 命令作单步跟踪调试 .比较每条指令执行后的结果和原来的理解是否一致。得 出程序运行的结果 :它们是写在什么单元 ,具体内容是什么,并判断结果是否正 确。 答:由于单步调试的结果较多,在这里仅说几项以示情况。 ①PUSHAX 后观察得到 IP 值自加 2。 ②MOVDS,AX 后 DS 的值由 14FAH 变成 150AH 。 ③Z 的偏移地址为 0005H,而寻址 Z 中的内容成为 [0005H] 。 所以结果一致正确。 (4)在子程序 SUB1 的入口处设一断点 ,用 G 命令执行程序,在断点处观察堆栈的 内容 ,比较堆栈的内容和程序返回地址是否一致。 答: SS=150BH,IP=0017H,和程序返回地址一致。 (5)重新使用编辑软件 ,把源程序最后一句中的 STAR 去掉 .再次生成可执行文件 , 并用 DEBUG 调入内存 .当使用 U 命令时 ,显示的结果与前一次 (未加 STAR)的结果有何不同 ? 答:整个代码段仅有一条指令,ADD[BX+SI],AL 。 由于把源程序最后一句中的 STAR 去掉,那么程序就不一定是从 STAR 开始,会 造成程序混乱。

利用DEBUG调试大全语言程序段

利用D E B U G调试大全语 言程序段 LG GROUP system office room 【LGA16H-LGYY-LGUA8Q8-LGA162】

利用DEBUG调试汇编语言程序段 一.实验目的 1.熟悉DEBUG有关命令的使用方法; 2.利用DEBUG掌握有关指令的功能; 3.利用DEBUG运行简单的程序段。 二.实验内容 1.进入和退出DEBUG程序; 1)开始—运行,输入cmd,点确定进入命令窗口 2)在命令窗口中输入dubug进入debug程序 3)进入debug窗口后,输入q命令退出debug 2.学会DEBUG中的 1)D命令(显示内存数据D 段地址:偏移地址) 例1:-D100 ;显示DS段, 0100开始的128个字节内容 说明:指定要显示其内容的内存区域的起始和结束地址,或起始地址和长度。 ①DSEGREG[起始地址] [L 长度] ;显示SEGREG段中(缺省内默认为DS), 以[起始地址] (缺省内为当前的偏移地址),开始的[L 长度] (缺省内默认为128)个字节的内容. ② D SEGREG[段地址:偏移地址] ;显示SEGREG段中(缺省内默认为DS), [段地址:偏移地址] 开始的[L 长度] (缺省内默认为128)个字节内容 -D;默认段寄存器为DS,当前偏移地址(刚进入debug程序偏移地址为0100H) -D DS:100 ;显示DS段, 0100H开始的128个字节内容 -D CS:200 ;显示CS段, 0200H开始的128个字节内容 -D 200:100 ;显示DS段, 0200:0100H开始的128个字节内容 -D 200;显示DS段, 0200H开始的128个字节内容 -D 100 L 10 ;显示DS段, 100H开始的100H个字节内容 2)E命令(修改指定内存) 例1:-E100 41 42 43 44 48 47 46 45 -D 100,L08 结果:08F1:0100 41 42 43 44 48 47 46 45 例2: -E 100: 08F1:0100 76 42 :42是操作员键入

实验二 Debug的使用

实验二 Debug的使用(基础与验证型) 一、实验要求和目的 熟练掌握动态调试程序DEBUG的使用; 二、软硬件环境 1、硬件环境:微机CPU 486以上,500MB以上硬盘,32M以上内存; 2、软件环境:装有MASM 5.0、Debug、LINK、EDIT、CREF.EXE和EXR2BIN.EXE等应用程序。 三、实验涉及的主要知识单元 通过编辑、汇编和连接后的程序是可以执行的程序。但是,一个程序特别是比较复杂的程序不能保证没有一点错误。因此,在投入正式运行前必须进行调试,以检查程序的正确性。调试程序Debug就是用来调试汇编语言程序的一种工具。Debug的主要功能有显示和修改寄存器及内存单元的内容;按指定地址启动并运行程序;设置断点使程序分段运行,以便检查程序运行过程中的中间结果或确定程序出错的位置;反汇编被调试程序,它将一个可执行文件中的指令机器码反汇编成助记符指令并同时给出指令所在的内存地址;单条追踪或多条追踪被调试程序,它可以逐条指令执行或几条指令执行被调试程序,每执行一条(或几条)指令后,Debug程序将中断程序的运行并提供有关结果信息;汇编一段程序,在Debug的汇编命令下可以直接输入助记符指令,并将其汇编成可运行程序段。此外,Debug还可以将磁盘指定区的内容或一个文件装入到内存或将内存的信息写到磁盘上等等。 启动Debug程序:在DOS状态下可以用下面的命令启动Debug程序: DEBUG [路径文件名.扩展名] Debug后面的文件名及路径是指被调试程序的文件名及路径,Debug后面的文件必须是程序的可执行文件,其扩展名可以是.EXE 或.COM。在此命令后,DOS将调试程序Debug 调入内存,Debug接着将被调程序送入内存。比如:DEBUG 123.EXE 调试程序Debug的主要命令如下: (一)显示内存单元内容的命令D 格式(1):-D 地址 从指定地址开始,显示128个字节的内容,每一行的左边显示段内偏移地址,接着显示16个单元的内容,最右边区域则显示这一行的16个单元所对应的可显示的字符。若无可显示的字符,则用圆点(小数点)填充。 D命令中的地址可为段内偏移量,也可为段基址和段内偏移量两部分,中间用冒号隔开,如1680:0110,即指段基址为1680H,段内偏移量为0110H。Debug中所显示的数据均为十六进制数,且省去了后面的H标志。 格式(2):-D 范围

动态调试程序DEBUG

武汉工程大学 电气信息学院 《面向对象程序设计》实验报告[ 1 ]

实验内容 (说明:此部分应包含:实验内容、实验步骤、实验数据与分析过程等) 一、实验内容、实验方法与步骤、实验数据与结果分析 1) 启动DEBUG程序 2)A命令(逐行汇编命令) A命令是逐行汇编命令,主要用于小段程序的汇编和修改目标程序。使用逐行汇编命令汇编程序时,一般不允许使用标号和伪指令。但在MS-DEBUG中允许使用DB和DW这两个伪指令。 3)G命令(执行)

G命令用来启动运行一个程序或程序的一段。 4)T命令(跟踪执行) T命令用来逐条跟踪程序的执行。 5)U命令(反汇编)

U命令可以对二进制代码程序作出反汇编,常用于分析和调试目标程序。 6)D命令(显示内存) 该命令是将调入内存的程序以十六进制形式以及对应的ASCII字符形式显示出来。 7)E命令(将内容写入内存)

将内容写到指定地址处。 8)R命令(修改寄存器) 显示寄存器的内容,然后修改其值。 9)N命令(命令) N命令也可用来设置文件名,以便于进行读/写。 10)W命令(写盘) W命令是将当前内存指定长度的内容按N命令给出的文件名存入磁盘。 11)L命令(读盘) L命令可将磁盘指定扇区的内容读到内存,或将指定文件读到内存。 12)M命令(移动内存) 移动内存内容实际上是将内存中的一块数据从一处复制到另一处。 13)C命令(比较) C命令是比较两块内存中的内容是否一致。 14)S命令(查找) S命令是查找内存中的指定内容。

15)F命令(填充) L命令将某个指定内容整块地填写到内存指定的位置上。 16)H命令(十六进制运算) H命令用来计算十六进制数的和与差。 17)I命令(读端口信息) I命令是读端口信息命令,可显示从指定端口取得的输入数据。 18)O命令(输出到端口) O命令是将指定字节内容送到指定端口。 实验总结 (说明:总结实验认识、过程、效果、问题、收获、体会、意见和建议。) 通过这次实验,使我了解和熟悉了DEBUG简单操作,通过DEBUG 命令的学习让我能够对基本程序的读写和调试。我还掌握了一些DOS 命令、汇编指令、DEBUG命令、BCD码、寄存器,让我有能力看懂编辑简单的指令。了解了8086系统中数据的存放方式和内存操作数的寻址方式,学会了简单源程序的编写,汇编,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的命令:Q 3、 Debug常用命令 (1)汇编命令A,格式为: - A [地址] 功能:从指定地址开始允许输入汇编指令,并将该指令汇编成机器指令代码从指定地址开始存放。若不指定地址,则系统从默认的地址开始存放。按回车键退出汇编状态 应用:用于调试一条指令或几条指令组成的一个程序段。 (2)显示和修改寄存器命令R,格式为: - R [寄存器名] 功能:若指定寄存器,则显示指定的寄存器的内容,并可进行修改;若不要修改,则按Enter 健。若未指定寄存器,则默认为显示所有寄存器的内容。 应用:常用于通过寄存器的值查看指令的执行结果。 (3)内存单元内容的命令E,格式为: - E 地址[内容表] 功能:若指定内容表,则用内容表中的内容代替指定地址开始的存储单元的值;否则,从指定地址开始逐个单元显示其内容,并等待用户修改,按空格键则继续显示下一单元的值,按回车键结束。例如: -E 100 184E: 0100 89,78

实验一调试程序DEBUG的使用实验报告

实验一调试程序D E B U G的 使用实验报告 Prepared on 22 November 2020

南昌理工学院实验报告 二O一二年月日 课程名称:微机原理与接口技术实验名称:调试程序DEBUG的使用班级:姓名:同组人: 指导教师评定:签名: 【一、实验名称】 调试程序DEBUG的使用 【二、实验目的】 1.掌握汇编程序的编辑,编译,连接和执行的全过程; 2.学习和掌握用DEBUG调试程序的方法。 【三、实验内容和原理】 1.用编辑软件,输入以下汇编语言源程序: DATSEGMENT ADB20;(自定) BDB15;(自定) YDB3DUP(0) ZDB0,0 DATENDS STASEGMENTSTACK DW50DUP() STAENDS CODSEGMENT ASSUMECS:COD,DS:DAT STARPROCFAR PUSHDS XORAX,AX PUSHAX MOVAX,DAT MOVDS,AX MOVAX,STA MOVSS,AX MOVAL,A MOVZ,AL MOVZ+1,AL CALLSUB1 MOVAL,B MOVZ,AL MOVZ+1,AL CALLSUB1 MOVAL,A MOVZ,AL MOVAL,B MOVZ+1,AL CALLSUB1

ADDWORDPTRY,AX ADCBYTEPTR[Y+2],0 RET STARENDP SUB1PROC MOVAL,Z MOVAH,Z+1 MULAH ADDWORDPTRY,AX ADCBYTEPTR[Y+2],0 RET SUB1ENDP CODENDS ENDSTAR

实验一 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 *.com L:将某个文件或特定磁盘扇区的内容加载到内存。格式:-L 地址 W:将程序写到磁盘。如果不指定 address,Debug 程序将从 CS:100 开始。在写盘操作之前要用R命令修改bx,cx的内容(存放写的字节数)。

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

实验1 初级程序的编写与调试实验

南昌大学实验报告 学生姓名:学号:专业班级: 实验类型:■验证□综合□设计□创新实验日期:2015年11月19日实验成绩: 实验1 初级程序的编写与调试实验(一) 一.实验目的 1.熟悉DEBUG命令;学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。对于U命令、N命令、W命令等,也应该试用一下; 2.掌握数据在内存中的存放方式和内存操作数的几种寻址方式,段寄存器和物理地址计算; 3.熟悉数据传送指令、算术运算指令、逻辑指令、循环指令的使用。 4.掌握简单的汇编语言程序编写与调试。 二.实验内容 1.内存操作数及各种寻址方式使用; 2.求累加和程序; 3.多字节加法程序; 4.数据串搬家程序; 5.段寄存器概念及字符串传送指令练习。 三.实验要求 1.仔细阅读有关DEBUG命令的内容,对有关命令,要求事先准备好使用的例子; 2.阅读数据传送指令、算术运算指令、逻辑指令、循环指令的使用方法 3.用DEBUG的有关命令调试本实验中的求累加和程序、多字节加法程序、程序段四.实验环境 PC微机; DOS操作系统或Windows 操作系统; MASM.EXE,LINK.EXE,https://www.wendangku.net/doc/e69059008.html,或宏汇编集成环境。 五.实验步骤 1.内存操作数及各种寻址方式使用 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 步骤: (1) 用A命令键入上述程序,并用T命令逐条运行。 (2) 每运行一条有关内存操作数的指令,要用D命令检查并记录有关内存单元的内容并注明是什么寻址方式。 注意D命令显示结果中右边的ASCII字符及双字节数存放法。

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

实验一熟悉使用调试工具软件DEBUG 编写汇编语言时,如果源程序中存在语法或格式上的错误,在汇编和链接过程中都可以被发现并得以纠正。但是如果在源程序中存在逻辑错误时,就只能通过调试来纠正了。常用的调试工作软件是DEBUG。DEBUG提供了修改寄存器和内存单元内容的命令,可以方便地修改寄存器及内存单元的内容,为调试和修改程序带来的方便。 1、DEBUG的启动 在windows环境下,点击开始栏里的运行窗,输入debug。 2、DEBUG的主要命令 这里只介绍常用的几个debug命令,其他命令请参考相关文献。 1)R命令 R命令作用:观看和修改寄存器的值。 在提示符“-”下输入命令R,DEBUG将会显示出当前所有寄存器和标 志位的状态。 在R后面输入相关的寄存器名称,可修改相关的寄存器值。 2)D命令 D命令作用:显示内存区域的内容。 在提示符“-”下执行命令D,可观察当前存储单元的内容。 用命令D显示内存区域的内容时,最左边是内存的起始地址,中间以十 六进制的形式显示内存值,最右边是以ASCII码的形式显示内存值。每 行最多显示16个字节的内容。 命令D可以带参数也可省略参数。设DEBUG启动时DS的值为X,当 省略参数时,命令D显示内容以X:100为起始,每次显示128个字节 的内容。以后再执行不带参数的命令D时,DEBUG将按上次的位置接 着显示下去。 带参数时DEBUG能够显示指定地址范围的内容。带参数的方式有三种: 方式一:d [起始位置]。DEBUG从起始位置开始显示128个字节的内容。 在提示符“-”下执行命令D 1AF5:100。观看命令执行结果。 方式二:d [起始位置] [结束位置]。DEBUG从起始位置开始一直显示到 结束位置。在提示符“-”下执行命令D DS:100 1FF。观看命令执行结果。 方式三:d [起始位置] [L长度],长度以L参数为标识。DEBUG从起始 位置开始显示指定长度的内容。在提示符“-”下执行命令D DS:100 L10。 观看命令执行结果。 3)E命令

相关文档
相关文档 最新文档