实验一利用Debug_命令调试小汇编程序
汇编语言源程序运行步骤和DEBUG的使用

汇编语言源程序运行步骤和DEBUG的使用一、实验目的1.熟悉汇编语言源程序书写格式。
2.熟悉汇编语言源程序编辑、汇编、连接、执行步骤。
3.练习DEBUG常用命令的使用。
4.熟悉8086的寄存器。
5.了解程序的执行过程。
二、实验预习要求1、认真阅读预备知识中汇编语言的上机步骤的说明,熟悉汇编程序的建立、汇编、连接、执行、调试的全过程。
2.预习使用DEBUG 检查/修改寄存器内容、查询存储器内容的命令。
3.预习使用DEBUG单步、断点及连续执行程序的命令。
三、实验内容1.编辑以下程序,汇编连接后运行,将输出'HOW ARE YOU?’。
本习题主要目的:熟悉汇编语言源程序的书写格式;熟悉汇编语言源程序的编辑、汇编、连接、运行。
DA TA SEGMENTBUF DB 'HOW ARE YOU?$'DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DA TAMOV DS,AXMOV DX,OFFSET BUFMOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START2.DEBUG 调试以下程序,查看DATA段中定义的数据在内存中的存放方式,并单步执行查看每一语句执行后相关寄存器的内容,并解释为何取该值:DA TA SEGMENT ;(1)DB 34H,12H ;(2)B DW 1234H ;(3)C DD 0 ;(4)D DB -1,15/3 ;(5)E DB '012' ;(6)F DW 'AB','C' ;(7)G DW ? ;(8)H DB 5 DUP(0) ;(9)I DW $-OFFSET H ;(10)DA TA ENDS ;(11)CODE SEGMENT ;(12)ASSUME CS:CODE,DS:DA TA ;(13)START: MOV AX,CODE ;(14)MOV DS,AX ;(15)MOV BX,SEG A ;(16)MOV CX,OFFSET B ;(17)MOV DX,TYPE C ;(18)MOV AH,4CH ;(19)INT 21H ;(20)CODE ENDS ;(21)END START ;(22)3.下面是第1题采用将主程序定义为远程的程序返回DOS的结束方式,将其编辑、连接、运行,熟悉汇编源程序不同的结束方式。
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命令详解1、显示命令D① D [地址]② D [范围]如不指定范围,一次显示8行×16个字节。
-D ;默认段寄存器为DS,当前偏移地址-D DS:100 / -D CS:200-D 200:100-D 200;200为偏移地址,默认段寄存器DS-D DS:100 110/ -D 100 L 102.修改命令E① E 地址;从指定地址开始,修改(或连续修改)存储单元内容。
DEBUG首先显示指定单元内容,如要修改,可输入新数据;空格键显示下一个单元内容并可修改,减号键显示上一个单元内容并可修改;如不修改,可直接按空格键或减号键;回车键结束命令。
② E 地址数据表;从指定的地址开始用数据表给定的数据修改存储单元。
-E DS:100 F3 ‘AB’ 8D。
3.添充命令FF 范围数据表;将数据表写入指定范围的存储单元;数据个数多,忽略多出的数据,个数少,则重复使用数据表。
-F DS:0 L5 01,02,03,04,05-F DS:0 L5 01 02 03 04 05(空格分隔)-F DS:0 L5 FF ;5个字节重复使用FF4.显示修改寄存器命令RR;★显示所有寄存器和标志位状态;★显示当前CS:IP指向的指令。
显示标志时使用的符号:标志标志=1 标志=0OF OV NVDF DN UPIF EI DISF NG PLZF ZR NZAF AC NAPF PE POCF CY NC5.汇编命令AA [地址];从指定的地址开始输入符号指令;如省略地址,则接着上一个A命令的最后一个单元开始;若第一次使用A命令省略地址,则从当前CS:IP 开始(通常是CS:100)。
注释:①在DEBUG下编写简单程序即使用A命令。
②每条指令后要按回车。
③不输入指令按回车,或按Ctrl+C结束汇编。
④支持所有8086符号硬指令,伪指令只支持DB、DW,不支持各类符号名。
6.反汇编命令U① U [地址];从指定地址开始反汇编32个字节的机器指令;省略地址时,则接着上一个U命令的最后一个单元开始;若第一次使用U命令省略地址,则从当前CS:IP开始(通常是CS:100)。
利用Debug调试汇编语言程序执行过程的教学探讨

f o r t h e u n d e r l y i n g wo r k p r i n c i p l e o f c o mp u t e r . T h e p r a c t i c e s h o ws t h a t t h e me t h o d c a n e f e c t i v e l y s t i mu l a t e s t u d e n t s ’i n t e r e s t i n
中图 分 类 号 : G6 4 2 . 0 文献 标 志 码 : A 文章 编 号 : 1 0 0 6 — 8 2 2 8 ( 2 0 1 3 ) 1 0 — 5 2 — 0 4
Ex pl o r a t i on o n t e a c h i n g a s s e mbl y l a ng ua g e pr o g r a m e x e c ut i on pr o c e s s us i n g De bu g
Xi a n g J i we n
( C o l l e g e o f I n f o r ma t i o n S c i e n c e a n d E n g i n e e r i n g ,J i s h o u U n i v e r s i t y ,J i s h o u ,Hu n a n 4 1  ̄O & C h i n a )
式、 通过 系统总线 与外设接 口进行连接 的基本方法 等 , 具备软 存单元 中的 内容 。 1 . 2寄存器命令 R 件与硬 件紧密 结合的显著 特点 。该 课程帮助 学生从根本 上认 功能 : 用于显示或修改 C P U寄存器 中的值 。 识和 理解计算 机 的底层工作 原理n , 培 养学生综 合运用模 拟 电
DEBUG调试程序实验及截图

实验二用DEBUG调试程序一、实验目的学习利用DEBUG调试程序的基本思想及方法二、实验环境:1.硬件:PC微机2.软件:DOS系统、EDIT.EXE、MASM.EXE、LINK.EXE、DEBUG.EXE三、实验内容1.被调试程序:DATA SEGMENTSTR DB 'Hello,World!$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET STRMOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START在编译器中输入上述程序,经汇编、连接生成可执行文件,然后DOS环境下输入DEBUG+可执行文件名,进入DEBUG调试阶段,1、反汇编命令U,-U↘:从当前IP处开始,对连续约32字节内容反汇编–U 0123↘:从指定的IP=0123处开始,对连续约32字节内容反汇编。
–U 0123 0143↘:从指定的IP=0123处开始反汇编,直至指定的0143处结束。
2、显示寄存器命令R:显示或修改寄存器的内容。
-R↘:显示所有寄存器当前的内容及当前将执行的指令。
3、运行命令G:使程序在DEBUG控制下运行4、单步命令T:控制程序运行一条指令后暂停,显示各个寄存器的当前值及断点处指令,然后返回DEBUG提示符“-”下。
5、显示内存命令D:以十六进制及ASCII两种方式显示内存区的二进制数据,通常用来观察数据段内的缓冲区内容。
6、汇编命令A:用于在DEBUG环境下直接键入汇编语言语句、生成较简单的可执行代码而不必经过完整的汇编语言编程步骤,或者用来在调试过程中临时修改某条指令。
7、用来将被调试程序重新装载进内存中,一般用于程序运行结束后需继续调试程序时,或需从头开始调试程序时。
8、退出命令Q:键入此命令,即退出DEBUG状态,返回DOS。
实验1debug的使用

实验1debug的使用实验一DEBUG的使用一、实验目的:1. 熟悉DEBUG的功能,掌握其常用命令格式并能熟练使用。
2. 使用DEBUG,观察PC机执行汇编指令的过程,掌握寄存器的名称与内存单元地址的形成。
二、实验要求:1. 遵守规章制度,爱护实验室设备。
2、熟悉Debug各个命令的用法。
3、熟悉寄存器的名称以及物理地址的形成。
4、写出实验报告。
三、实验内容:实验1、 DEBUG常用指令操作进入Debug环境,完成下列步骤。
1、用R命令查看寄存器的值,将AX的值修改为1,BX的值修改为100 (十进制)。
2、用D命令查看内存00200H开始的128个单元的内容。
用E 命令将内存00200H和00202H处的内容分别改为1、2 。
3、用E命令将”I am a student!!”写入内存00200H处。
用D 命令查看是否写入成功。
4、用A 命令向内存00210H处写入汇编指令MOV AX,1234MOV BX,0158ADD AX, BX5、使用U命令反汇编,并用T命令执行上述指令,查看执行后的结果,3条指令执行后AX的值为多少?6、直接在内存中将指令“MOV BX,0158”改为“ADD BX,0158”,其他指令不变。
然后用G命令执行这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.,并用命令查看设置是否成功。
实验3、理解指令的执行过程将下面3条指令写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方mov ax, 1add ax, axjmp 2000:003分析jmp指令的功能和执行过程。
DEBUG命令练习
实验一、调试程序DEBUG实验目的:1、学习汇编语言的一种调试工具DEBUG 的使用方法2、以简单的传送指令(MOV)为例,掌握存储器操作数寻址方式书写格式3、掌握14个寄存器基本功能,理解存储器偏移地址,物理地址的概念实验内容:1、显示存储器单元内容的命令-D(书写格式,使用方法)2、显示和修改寄存器内容的命令-R(书写格式,使用方法)3、修改存储器单元内容的命令-E(书写格式,使用方法)4、反汇编命令–U,汇编命令–A(书写格式,使用方法)5、运行命令-T,-G,退出命令-Q等实验结果:实验二、汇编语言程序的上机过程实验目的:1、熟练掌握用汇编语言设计、编写、调试、运行程序的方法。
实验内容:1、编写出源程序、画出程序的流程图、2、用汇编程序MASM对源程序汇编产生目标文件*.OBJ,用连接程序LINK产生可执行文件*.EXE。
3、用DEBUG 进行调试。
MOV AX, 1234HMOV BX,5678HPUSH BXPUSH AXPOP BX ;执行后BX= (1)POP AX ;执行后AX= (2)MOV AX,6384H ;执行后AH= (3)MOV CL,4ROR AL,CL ;执行后AL= (4)AND AL,0F0H ;执行后AL= (5)实验三、数据传送指令实验目的:1、进一步加深对寄存器,存储器操作数、立即数概念理解。
2、掌握存储器操作数各种寻址方式的格式。
3、理解进栈出栈时指令的执行过程,累加器的端口地址表示。
4、理解地址传送指令源操作数都为存储器操作数。
5、理解标志寄存器传送指令。
实验内容:1. 若定义DAT DD 12345678H,则DAT+2字节单元的数据是()。
A. 78HB. 56HC.34HD. 12H2. 某计算机字长为16位,其内存容量为1M字节,按字(或字节)编址,它的寻址空间为()。
A. 512KBB. 512KC. 1024KD. 1024KB3.若程序中的数据定义如下:ORG 0030HDA T1 DB 10 DUP (?)DA T2 EQU 12HDA T3 EQU 34HDA T4 DW $+3 ,56H则数据项$+3 的值为()A. 003BHB. 003CHC. 003DHD. 003EH实验四、算术运算指令实验目的:1、掌握加法,减法和比较指令对OF,CF影响,进行一种简单的归纳。
汇编语言课程2_调试程序DEBUG
12
调
试
程
序
DEBUG
② R 寄存器名;显示并修改指定的寄存器. 寄存器名;显示并修改指定的寄存器. RIP;RF等 RAX ;RIP;RF等 5.汇编命令 汇编命令A 5.汇编命令A [地址 地址] 从指定的地址开始输入符号指令; A [地址];从指定的地址开始输入符号指令; 如省略地址,则接着上一个A 如省略地址,则接着上一个A命令的最后一个单元开 若第一次使用A命令省略地址,则从当前CS:IP 始;若第一次使用A命令省略地址,则从当前CS:IP 开始(通常是CS 100). CS: 开始(通常是CS:100). 注释: DEBUG下编写简单程序即使用 命令. 下编写简单程序即使用A 注释:①在DEBUG下编写简单程序即使用A命令. 每条指令后要按回车. ②每条指令后要按回车. 不输入指令按回车,或按Ctrl+C结束汇编. Ctrl+C结束汇编 ③不输入指令按回车,或按Ctrl+C结束汇编. 支持所有8086符号硬指令,伪指令只支持DB 8086符号硬指令 DB, ④支持所有8086符号硬指令,伪指令只支持DB, DW,不支持各类符号名. DW,不支持各类符号名.
参数格式2
7
调
试
程
序
DEBUG
命 令 索 引
D命令 U命令 N命令 S命令 E命令 G命令 L命令 I命令 F命令 T命令 W命令 O命令 R命令 P命令 C命令 M命令 A命令 Q命令 H命令
命令索引
8
调
试
程
序
DEBUG
§3.DEBUG命令 3.DEBUG命令 1.显示命令D 1.显示命令D 显示命令 [地址 地址] ① D [地址] [范围 范围] ② D [范围] ;如不指定范围,一次显示8行×16个字节. 如不指定范围,一次显示8 16个字节. 个字节 -D ;默认段寄存器为 ,当前偏移地址 默认段寄存器为DS, -D DS:100 /-D CS:200 /- -D 200:100 200;200为偏移地址 默认段寄存器DS 为偏移地址, -D 200;200为偏移地址,默认段寄存器DS -D DS:100 110/ -D 100 L 10
汇编_DEBUG的使用
格式转换程序
返 回
上机操作过程
1.编辑 1.对编辑完成的源程序在存盘时扩展名必须加写.ASM 2.一定要严格遵守汇编语言书写格式及段结构的格式来 编写程序
2.汇编
汇编过程就是将汇编语言源程序转换成机器能够识别的 目标代码程序,即OBJ的二进制文件。还可生成扩展名 为.LST的列表文件,扩展名为.CRF的符号索引文件。
DEBUG常用命令-Q命令
退出DEBUG程序的命令Q(quit)
退出DEBUG,返回到DOS 该命令无存盘功能,如需存盘应先使用W 命令
常用的DOS功能调用
书本的第8章专门讲述中断程序设计 而在讲第8章以前,我们需要用到几个常用
的DOS功能调用,所以这里先简单介绍几个 使用方法:
A命令举例:
-A 127C:0100 mov 127C:0103 mov 127C:0105 int 127C:0107 mov 127C:0109 int 127C:010B db 127C:011E -r cx CX 0000 :011E -n -w Writing 0011E -q C:\>2
DEBUG常用命令-U命令
反汇编命令U(Unassemble)
从指定地址开始,反汇编32个字节
格式为: U [地址] 例如: U 100 如果地址被省略则从上一个U命令的最后一条指令的 下一个单元开始显示32个字节。 格式为: U [range] 例如: U 100 10C 从偏移地址为100H处开始反汇编10CH个字节
1.设置入口参数(有些不需要设置的就不设置) 2.功能调用号送AH寄存器 3.发软中断指令“INT 21H”
4C号功能调用
动态调试程序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 命令的学习让我能够对基本程序的读写和调试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CF=0,SF=1,OF=1
实验操作
1.显示内存 2000 : 0000到000F单元内容
2•修改内存2000: 0005单元内容为
xy' , 52H 填充
4.显示并修改 FLAG寄存器内容,使
得
i-
厂*
5.在内存3000:0000处汇编4条MOV指令,并用反汇编显
示它的机器码
mov AX,1234
MOV [0100],AX
Mov BX,5678H
ADD BX,[0100]
7.用T命令跟踪上面第1,2,3条指令的执行结果,查看
AX,BX
思考 你认为 debug 程序能给你汇编程序设计时带来什么有益的
・LlhW TU? ],
kL
Cfiilil LU.
'
輯
W hftL
CB«I>I L AL
L4L
帮 助?
答: DEBUG 是一个 DOS 实用程序,是供程序员使用的程序
调试工具,可以用它检查内存中任何地方的字节以及修改任 何
地方的字节。它可以用于逐指令执行某个程序以验证程序 运行
的正确性,也可以追踪执行过程、比较一个指令执行前 后的值
以及比较与移动内存中数据的范围,读写文件与磁盘 扇区