汇编语言实验报告(DEBUG命令)
汇编实验报告(-)调试程序DEBUG的使用

汇编实验报告(-)调试程序DEBUG的使用《汇编语言程序设计》实验报告实验一调试程序DEBUG 的使用一、实验目的通过实验掌握下列知识:1、DEBUG命令:A,T,D,F,G;2、数据在内存中的存放方式和内存操作数的几种寻址方式;3、汇编指令:INC,DEC,LOOP,INT 3的应用;4、汇编语言伪指令:BYTE PTR和WORD PTR的应用。
二、内容及步骤1.DEBUG 命令使用表 1.1 DEBUG命令****命令的使用中注意:****①字母不分大小写;②②只使用16 进制数,没有后缀字母;③分隔符(空格或逗号)只在两个数值之间是必须的,命令和参数间可无分隔符;④每个命令只有按了回车键后才有效,可以用Ctrl+Break中止命令的执行;⑤命令如果不符合Debug 的规则,则将以“error”提示,并用“^”指示错误位置。
许多命令的参数是主存逻辑地址,形式是“段基地址: 偏移地址”。
其中,段基地址可以是段寄存器或数值;偏移地址是数值。
如果不输入段地址,则采用默认值,可以是缺省段寄存器值。
如果没有提供偏移地址,则通常就是当前偏移地址。
1、开机后,切换到命令提示符窗口下,出现提示符后键入命令DEBUG, 进入调试环境,显示提示符 '- '。
2、用命令 F 200 220 'AB' 将'AB'的两个ASCII码循环填入内存。
注:第一个参数200是当前段的起始偏移地址,第二个参数220是终了偏移地址,第三个参数‘AB’是被填入的数值,若不给出第二个参数则填入128(8行)个字节。
3、用命令 D200 观察内存中的十六进制码及屏幕右边的ASCII字符。
图1-1 Fill、Dump命令调用对主存操作的命令还支持地址范围这种参数,它的形式是:“开始地址结束地址”(结束地址不能具有段地址),或者是:“开始地址L 字节长度”。
D(Dump)命令显示主存单元的内容,它的格式如下(分号后的部分用于解释命令功能,不是命令本身):D [地址] ;显示当前或指定开始地址的主存内容D [范围] ;显示指定范围的主存内容图1-2 D命令调用左边部分是主存逻辑地址,中间是连续16 个字节的主存内容(16进制数,以字节为单位),右边部分是这16个字节内容的ASCII字符显示,不可显示字符用点“.”表示。
实验一DEBUG命令实验

实验⼀DEBUG命令实验实验⼀ DEBUG命令实验⼀.实验⽬的:掌握DEBUG 的基本命令及其功能⼆.实验内容:DEBUG是专门为汇编语⾔设计的⼀种调试⼯具,它通过步进,设置断点等⽅式为汇编语⾔程序员提供了⾮常有效的调试⼿段。
1、DEBUG程序的启动DEBUG的命令格式:[drive:][path] DEBUG [d:][p][filename][.ext][param...]其中:drive: 是指定DEBUG⽂件的磁盘驱动器标识符,DEBUG是外部DOS命令,所以必须把它从磁盘读⼊内存。
若未指定,DOS 将使⽤当前默认磁盘驱动器。
path: 是DOS查找DEBUG⽂件的⼀个⼦⽬录串表⽰的路径。
若未指定,DOS将使⽤当前⼯作⽬录。
d: 是DEBUG将要调试的⽂件所在的磁盘驱动器。
p: 是查找DEBUG将要调试的⽂件所需的⼦⽬录路径,若未指定,DOS使⽤当前⽬录。
filename[.ext] 是DEBUG将要调试的⽂件名。
param 是将被调试的程序(或⽂件)的命令⾏参数。
例如:在DOS提⽰符下,可键⼊命令:C>debugDEBUG所完成的初始化动作,假定⽂件名没有,启动DEBUG:段寄存器CS、DS、ES和SS置为DEBUG程序后的第⼀个段。
指令指针寄存器IP置为100H(程序段前缀PSP后的第⼀个语句)。
堆栈指针SP置为段末或/doc/1f7311358.html暂驻部分的结束地址(其中较⼩的那个地址)。
其余通⽤寄存器均置为0,标志寄存器置为下述状态。
NV UP EI PL NE NA PO NC如果在DOS提⽰符下,可键⼊命令,包含⽂件名:C>debug name.exe段寄存器DS和ES指向PSP。
寄存器BX和CX含有程序长度。
注意:字母不分⼤⼩写;只使⽤16进制数,不加H;分割符只在两个数值之间是必须的,命令和参数之间可有可⽆;键⼊回车键执⾏命令,Ctrl+Break或Ctrl+C中⽌命令的执⾏;如命令不符合DEBUG的规则,则提⽰“error”并使⽤“^”指⽰错误位置。
汇编实验报告--利用DEBUG调试汇编语言程序段

实验一利用DEBUG调试汇编语言程序段学生姓名:何茂杰学号:2010305104 专业班级:10级计算机本科一班指导老师:文远熔实验日期:实验成绩:一、实验目的1.熟悉DEBUG有关命令的使用方法;2.利用DEBUG掌握有关指令的功能;3.利用DEBUG运行简单的程序段。
二、实验内容1.学会使用debug的A, U, T, D, E等命令。
2.编写一个程序计算Y=(X*U+V)/1000,X、Y、U、V(均为16位有符号二进制数)的存放地址自己确定。
分别使用两种以上的寻址方式对X、Y、U、V寻址。
三、实验环境PC微机DOS操作系统或Windows 操作系统四、实验要求1.仔细阅读有关DEBUG命令的内容,对有关命令,要求事先准备好使用的例子;2.学会使用debug的A, U, T, D, E等命令。
五、主要实验步骤(一)学会使用DEBUG中的简单命令:1.打开DOS,开始——运行——cmd。
2.进入DEBUG,在DOS下输入DEBUG,直接进入。
3.在DEBUG中输入D,查看D命令结果,输入D 1000,查看指定地址的数据。
4.在DEBUG中输入E100,修改地址100的数据,再输入D100,查看修改后的结果。
5.在DEBUG中输入R,查看当前寄存器的内容。
6.在DEBUG中输入A,输入以下代码:mov ax,1234mov [1000],ax输入T显示第一条命令运行结果,再次输入T,显示第二条命令运行结果,输入d1000,验证命令运行结果。
7.在DEBUG中输入A,输入以下代码:mov ax,1234mov [1000],ax输入G [=起始地址] [结束地址]↓,再输入D1000,验证命令运行结果。
8.在DEBUG中输入U [起始地址] [结束地址],从[起始地址]开始进行反汇编。
9.在DEBUG中输入Q,推出DEBUG程序。
(二)用DEBUG验证乘法、除法、加法、减法等功能:1.验证加法和带进位加,使用A命令,在DEBUG中键入以下代码:mov ax,f111mov bx,f222mov cx,2mov dx,3add ax,bxadc cx,dx使用G命令查看结果2.验证减法和带借位减法,使用A命令,在DEBUG中键入以下代码:mov ax,2mov bx,3mov cx,5mov dx,2sub ax,bxsbb cx,dx使用G命令查看结果3.验证乘法和除法,使用A命令,在DEBUG中键入以下代码:乘法:mov al,b4mov bl,11mul bl使用G命令查看结果除法:mov ax,400mov bl,b4div bl使用G命令查看结果六、实验数据及处理结果反汇编:执行情况:七、思考题启动DEBUG后,要装入某一个.EXE文件,应通过什么方法实现?答:进入DOS,输入DEBUG xxx.exe,其中xxx为文件名。
实验一 利用 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基本命令的使用

ERROR:
MOV AH,9
LEA DX,WARN
INT 21H
JMP RESTINT 21H
CODES ENDS
END START
调试分析
运行截图
教师评阅:
年月日
评分
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
RESTORE:
MOV AH,9
LEA DX,HINT
INT 21H
MOV AH,10
LEA DX,STRING
INT 21H
MOV BL,STRING+1
MOV BH,0
LEA SI,STRING+2
MOV BYTE PTR [SI+BX],'$'
MOV CX,BX
MOV BL,2
CHECK:
CMP STRING[BX],'A'
JL ERROR
CMP STRING[BX],'Z'
JG ERROR
ADD BL,1
LOOP CHECK
MOV BL,STRING+1
MOV BH,0
MOV CX,BX
MOV BL,2
《微机原理与汇编语言程序设计》实验(上机)报告
班级·学号姓名实验日期任课教师
实验名称
实验一DEBUG基本命令的使用
验证型
实验目的及要求:
1. 掌握DEBUG的基本命令及功能;
实验内容:
1.编写一个小程序,从键盘接收一个大写字母,存放到指定内存单元BUF1,并转换成为对应的小写字符,存放到内存单元BUF2。上机编辑、汇编、连接并运行。
汇编实验二DEBUG调试实验

实验二应用DEBUG软件调试程序实验一、实验原理:Debug是DOS、Windows都提供的实模式程序的调试工具。
使用它可以查看CPU各种寄存器中的内容、内存的情况和在机器码级跟踪程序的运行。
常用的DEBUG命令使用练习。
我们要用到的Debug功能如下:R命令查看、改变CPU寄存器的内容;D命令查看内存中的内容;E命令改写内存中的内容;U命令将内存中的机器码指令翻译成汇编指令;T命令执行一条机器指令,单步跟踪命令;A命令以汇编指令的格式在内存中写入一条机器指令;P命令,单步执行命令。
二、实验目的:通过DEBUG命令使用练习,掌握汇编的调试工具的使用,进而能够熟练使用调试命令对汇编程序的调试,修改程序运行中的错误,完善程序。
三、实验步骤:1.进入Dos环境,输入DEBUG后即可进入DEBUG。
2.练习使用r,d,,u,t,p,a,q等调试命令,查看各命令的功能和命令输入后的内存变化;四、实验任务:(一)使用Debug,将给出的程序段调入内存,逐条执行(1)用R命令查看CPU寄存器的内容,实验结果如下:用R命令改变CPU寄存器的内容,实验结果如下:(2)命令格式:d ds:100G命令执行前(kk00在内存中的地址:逻辑地址是13B3和物理地址是0100)G命令全数运行后实验结果如下u命令执行(二)利用Debug的E命令更改内存中的数据内容,将“kkkk”改为1vRT(三)利用Debug的A命令将如下程序段实现汇编指令的写入,并执行,用R命令进行查看寄存器值MOV DX,2233HMOV AH,10MOV CX,0FHMOV SI,11HMOV AL,12HAND AL,0FHMOV AH,0(四)查看内存中的内容PC机主板上的ROM中写有一个生产日期,在内存FFF000H~FFFFFH中的某个单元中,找出该生产日期,并尝试改变。
五、实验小结:(本次实验的心得体会,遇到的问题,解决方法以及掌握了什么、自己的感想之类的)。
汇编实验

实验一DEBUG 命令的使用【实验目的】1.学习使用DEBUG程序的各种命令。
2.掌握用DEBUG调试自编程序的方法,为以后实验打下基础。
【实验内容】1、请自学并完成如下内容:(1)DEBUG的使用方法(1)(2)DEBUG的使用方法(2)2、用DEBUG调试、运行可执行程序。
1)进入DEBUG后,首先用命令R查看当前DS和IP寄存器内容,记录此值。
2)学习R,D,A,U,T,P,G命令的使用。
3)用命令A汇编下列指令,并判断指令正误并说明原因。
(1)LEA DI,[AX](2)MOV DS,2010(3)PUSH AL(4)MOV [BX],03.用A命令汇编下列程序段,完成将DS:2000开始的5个字节内存内容相加,并把相加的结果存放在DS:2005内存单元中,将程序写到硬盘上,然后用DEBUG调试﹑运行该程序,查看运行结果,观察程序段能否完成指定功能,若不能,说明原因。
2000【预习要求】1、仔细阅读试验指导的“前言”、“试验环境与上机步骤”;2、自学“DEBUG使用简介”、“经典DEBUG”;2、计算下列表达式,并思考如何运行程序验证它们45H +70H =_____ ,OF =_____ ,CF =_____ ;F6H +2AH =_____ ,OF =_____ ,CF =_____ 。
【报告要求】1、每个实验内容的实验调式结果、试验分析以及试验问题回答,需有必要的屏幕截图。
2、回答思考题。
3、提交电子版试验报告。
4、雷同的实验报告将不分青红全部被判为0分。
【实验提示】1)DEBUG的进入⑴如果是首次进入DEBUG编程,则只要在DOS提示符下键入DEBUG ↙,即可进入DEBUG环境,显示提示符“-”。
⑵如果要对某个程序使用DEBUG进行调试,只要在DOS提示符下键入DEBUG 文件名↙,即可进入DEBUG环境,显示提示符“-”。
2)程序的汇编与反汇编⑴源程序可以在DEBUG下,用汇编命令A输入到内存中,只需在DEBUG提示符“-”下,键入汇编命令A ↙,并在显示“段寄存器地址:偏移地址”后面键入你自己编写的程序,每键入一条,按一次回车键。
实验一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 地址[内容表]功能:若指定内容表,则用内容表中的内容代替指定地址开始的存储单元的值;否则,从指定地址开始逐个单元显示其内容,并等待用户修改,按空格键则继续显示下一单元的值,按回车键结束。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西安财经学院信息学院
《汇编语言程序设计》 实验报告
实验名 DEBUG 命令,指令练习 实验 403 实验日期 2013.4.16 一、实验目的及要求
熟悉和掌握汇编语言的数据传送类指令、算术指令、逻辑指令、串处理指令、控制转移指令以及处理机控制与杂项操作指令,达到准确有效地运用。
二、实验环境
硬件环境:一台微型计算机;
软件环境:windows 7,debug 环境,masm 三、实验内容
练习dos 环境下debug 命令;指令练习 四、实验过程: 1. 进入debug 环境
姓名
学号 10051704 班级 计本1004班 指导教师 张娟
2.R命令
查看寄存器内容的命令。
可以看出,数据寄存器的内容都为0,CS代码段寄存器内容为13BB,IP为
0100。
3.RF命令
查看标志位寄存器内容并可以进行修改,其中不包含TF,陷阱标志位。
4.D命令
查看内存单元内容,此处从内存的13BB段的第0100个单元开始显示。
5.A命令
写指令,此处未写。
6.U命令
将内存单元的内容以汇编指令的形式表示出来。
7.E命令
修改内存单元的内容命令。
这里修改1000的内容为12,并用D命令显示修改后的结果,为12。
8.数据传送类指令
(1)MOV指令
将1234赋值给累加器AX:
指令写在0100开始的内存单元,占用3个字节,IP指向下一条指令的地址0103。
(2)POP指令
将累加器AX中的值弹出
AX中的值弹出,变为0000,SP堆栈指针由原来的FFEE自动加2后变为FFF0,
IP指向下一条指令的内存单元0104。
9.算数指令(以下内容在实验室操作,地址与之前做的有差别)
10.算数指令
(1)加法指令ADD
给累加器AX 的值加上1234h
在0100地址写加法指令,执行单步操作,查看到AX的值由0000h变为1234h,IP 指向下一条指令的地址0103h。
(2)减法指令SUB
将累加器AX 的值减去0200h,将结果保存到AX中
执行单步操作,查看AX的值为1034h,IP指向下一条指令地址0106。
(3)乘法指令MUL
将9BH赋值给AL ,26H赋值给BL,再将AL与BL的值相乘赋值给AL
原来的AX=1034h,BL=00H,赋值后,AX=109BH,BL=26H,单步执行有符号乘法后,AX=F102,IP指向下一条指令地址010C,OF由NV变为OV,证明有溢出,进位标志CF由NC变为CY,证明最高有效位有进位。
(4)除法指令DIV
给AX赋值7D90H,给BX赋值1000H,用AX除以BX,将结果保存到AX中:
执行前两步单步操作后,AX=7d90h,BX=1000h,执行单步除法操作后AX=0007H,未发生溢出,所以OF还是原来的NV。
MOV指令占3个字节,除法指令DIV占用2个字节,所以IP指向下一条指令0108。
(5)十进制调整指令DAA
给AX、BX分别赋值0079H和0089H,将它们的值进行相加操作ADD,机器将默认它们进行十六进制加法,所以结果为0102H,但本次我们进行的是BCD码的加法,所以进行DAA十进制调整指令,正确结果应为0108H。
11.逻辑指令
(1)异或指令XOR
在原来的基础上将AX的第7的二进制值变反,其他位不变
AX的值原来为0108H,第7位变反,因为数值与1异或相反,与0异或不变,则用AX的值与0008H异或,得到正确的值。
12.串处理指令
(1)字符串传送指令MOVSB
五、实验体会
通过本次的实验,我不仅练习了和掌握了debug的各种命令,还对数据传送类指令、算术指令、逻辑指令、串处理指令有了一定的掌握,在实验过程中遇到过一些错误,通过请教同学和查书都能解决,所以,同时也培养了我解决问题的能力。