DEBUG调试程序的应用实验的报告.doc
汇编实验报告(-)调试程序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字符显示,不可显示字符用点“.”表示。
【最新2018】debug实验报告-实用word文档 (7页)
mov ax,1 add ax,ax
jmp 201X:0003
- 4 -
- 5 -
篇二:DEBUG 实验 报告
微机实验报告
学院:物信学院
班级:电信一
学号:112207301122
姓名:杨义
一.实验目的:
1. 熟练的掌握debug的常用命令,学会用debug来调试程序。 2. 深入了解数据在储存器中的存取方法,了解堆栈中数据的压入与弹出方法。
STA SEGMENT STACK STARENDP
DW Байду номын сангаас0 DUP(?)SUB1PROC
STA ENDS MOV AL,Z
COD SEGMENT MOV AH,Z+1
ASSUME CS:COD,DS:DAT MUL
AH
STARPROC FAR ADD WORD PTR Y,AX PUSH DS ADC BYTE PTR[Y+2],0 XOR AX,AX RET
PUSH AXSUB1ENDP
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!
== 本文为word格式,下载后可方便编辑和修改! ==
debug实验报告
篇一:汇编 DEBUG 实验报告
一、 实验目的、
学习查看CPU及存储器命令
二、 实验设备及环境
主流PC Win7_x64
DOSBox Status Window DEBUG.EXE
- 3 -
mov bx,ax将ax的值存入bx, bx=8236h add ax,bx 将ax+bx的值存入ax,ax溢出, ax=046ch mov ax,001a将001ah存入ax, ax=001ah mov bx,0026 将0026h存入bx, bx=0026h add al,bl 将al+bl的值存入al,ah=00h,al=40h,ax=0040h add ah,bl 将ah+bl的值存入ah,ah=26h,al=40h,ax=2640h add bh,al 将bh+al的值存入bh,bh=40h,bl=26h,bx=4026h mov ah,0 将0000h存入ah, ah=00h,al=40h,ax=0040h, add al,bl 将al+bl的值存入al,ah=00h,al=66h,ax=0066h add al,9ch将al+9ch的值存入al,ah=00h,al=02h,ax=0002h,
debug实验报告
debug实验报告Debug实验报告引言:在软件开发和编程过程中,调试(Debug)是一项非常重要的任务。
通过调试,我们可以找到程序中的错误和问题,并进行修复。
本实验报告旨在探讨调试的重要性、调试的方法和技巧,以及调试过程中可能遇到的挑战和解决方案。
一、调试的重要性调试是软件开发过程中不可或缺的一环。
它有助于提高程序的质量和稳定性,确保程序能够按照预期的方式运行。
调试可以帮助开发人员快速定位和修复错误,提高开发效率。
同时,调试也是学习和提升编程技能的重要手段,通过调试,我们可以深入了解程序的运行机制和各种问题的解决方法。
二、调试的方法和技巧1. 使用调试器工具:调试器工具是程序员的得力助手,可以帮助我们逐行执行代码、查看变量的值和程序的执行流程。
常用的调试器工具有GDB(GNU Debugger)、Xcode等。
通过使用调试器工具,我们可以更加直观地观察程序的执行过程,快速定位错误所在。
2. 打印调试信息:在程序中适当地插入打印语句,输出关键变量的值和程序的执行状态,可以帮助我们了解程序的执行流程,找到错误的发生位置。
在调试完成后,记得删除或注释掉这些打印语句,以免影响程序的性能。
3. 缩小调试范围:当程序出现问题时,可以通过逐步缩小调试范围的方式,找出引发问题的具体代码。
可以先注释掉一部分代码,验证程序是否正常运行,然后逐步恢复注释,直到找到引发问题的代码段。
4. 使用断言和异常处理:在程序中合理地使用断言和异常处理机制,可以在错误发生时及时中断程序的执行,并输出相关的错误信息。
这样可以帮助我们快速定位错误,提高调试效率。
三、调试过程中的挑战和解决方案1. 复现问题:有时,程序在某些特定条件下才会出现问题。
在调试过程中,我们需要尽可能还原出问题的场景,以便更好地分析和解决问题。
可以通过调整输入数据、环境变量等方式,尽量复现问题。
2. 多线程调试:当程序涉及多线程时,调试过程会变得更加复杂。
由于多线程的并发执行,错误可能会难以复现和定位。
debug的使用实验报告
debug的使用实验报告
《Debug的使用实验报告》
在软件开发过程中,debug是一个非常重要的步骤,它可以帮助开发者找到并
修复代码中的错误。
在本次实验中,我们将探讨debug的使用方法以及其在软
件开发中的重要性。
首先,我们需要明确debug的定义。
Debug是一种通过检查、测试和纠正软件
中的错误来确保其正常运行的过程。
在实际应用中,debug通常涉及使用调试
器工具来逐步执行代码并观察其行为,以便找出问题所在。
在本次实验中,我们使用了一个简单的Java程序作为例子来演示debug的使用。
该程序包含了一些常见的错误,如语法错误、逻辑错误和运行时错误。
通过使
用调试器工具,我们逐步执行程序并观察其行为,以便找出并修复这些错误。
在实验过程中,我们发现debug的使用能够极大地提高代码的质量和稳定性。
通过逐步执行程序并观察其行为,我们可以更容易地找出并修复代码中的错误,从而减少了在后期测试阶段发现问题的可能性。
此外,debug还可以帮助我们
更好地理解程序的运行逻辑,从而提高了代码的可读性和可维护性。
总的来说,通过本次实验,我们深刻认识到了debug在软件开发中的重要性。
它不仅可以帮助我们找出并修复代码中的错误,还可以提高代码的质量和稳定性。
因此,在日常的软件开发过程中,我们应该充分利用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调试程序的使用姓名:胡彬彬专业:计算机科学与技术班级:计算机14级2班学号:1404010210计算机科学与技术学院实验教学中心2016 年 4 月12 日实验项目名称:DEBUG调试程序的使用一、实验目的1.熟悉 DEBUG 调试程序中的常用命令。
2.学会在 DEBUG 下调试运行汇编语言源程序。
二、实验内容1.熟悉DEBUG常用命令的使用: A、U、D、E、R、G、T、L、W、Q常用命令。
2.在DEBUG下编写汇编语言程序,实现多字节(5个字节)十进制加法。
三、实验用设备仪器及材料硬件:计算机软件:DEBUG调试软件四、实验原理及代码-A010013E0:0100 MOV BX,013013E0:0103 MOV SI,014013E0:0106 MOV CX,513E0:0109 MOV AL,[BX]13E0:010B ADD AL,[SI]13E0:010D DAA13E0:010E MOV [BX+20],AL13E0:0111 INC BX13E0:0112 INC SI13E0:0113 LOOP 010913E0:0115五、实验操作步骤1.在【开始菜单】\【程序附件】\【命令提示符】下,进入 DOS环境。
或在【开始菜单】\【运行】下,直接键入cmd进入。
2.在DOS目录下启动DEBUG。
3.熟悉DEBUG常用命令,详细记录每一步所用的命令及查看结果的方法和具体结果。
4.在DEBUG下编写程序,实现多字节十进制加法实验。
六、实验结果分析。
实验一Debug程序的使用
湖北科技学院计算机科学与技术学院《微机接口技术》实验报告学号: 124221031 姓名:李亮亮实验题目: Debug程序的使用实验报告指导老师:范建军实验日期: 2014.11.21一、实验目的1.学习使用DEBUG调试命令。
2.学习用DEBUG调试简单程序。
3.通过程序验证码制及其对标志位的影响。
4.通过调试熟悉和掌握个寄存器的作用与特点。
二、实验内容用DEBUG调试简单程序。
三、实验仪器微机一台四、实验步骤1.由DOS进入DEBUG调试环境。
(1)C:>DEBUG 将调试程序装入内存注意:当机器控制权由DOS成功地转移给调试程序后,将显示“-”号,它是DEBUG 的状态提示符,表示可以接受调试子命令了。
(2)-R显示CPU中各寄存器当前初始内容,请记录下列各项:AX=0000BX=0000CX=0000DX=0000BP=0000SI=0000DI=0000 DS=073F ES=073F SS=073F SP=00FD CS=073F IP=0100如图所示:FLAG寄存器中的8个标志位状态值是:OF DF IF SF ZF AF PF CF0 0 1 0 0 0 0 0说明:1)此时,调试工作区的四个段值相同,指向同一起点,表明公用一个64KB空间;2)SS:SP指向堆栈顶单元,SP为FFFE或FFEE,正好是本段的最高可用地址,表明堆栈自动使用最高地址,栈区由底向上生长;3)CS:IP为约定的调试工作区地点(IP=0100),可由此装入待调试程序代码,或汇编键入的程序小段,工作区由低址往下使用;4)DEBUG用符号给出标志寄存器中8个标志位的当前状态,其含义如下表所示。
标志位含义‘1’的对应符号‘0’的对应符号OF溢出OV有NV无DF方向DN递减UP递增IF中断EI允许DI禁止SF符号NG负PL正ZF全零ZR零NZ非零AF辅助进位AC有NA无PF奇偶性PE偶PO奇CF进位CY有NC无(3)结束程序,返回DOS。
汇编实验报告--利用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程序调试程序功能段实验二主要是通过使用DEBUG程序调试汇编语言编写的程序功能段。
DEBUG是一个在DOS操作系统下的调试工具,它可以用来查看和修改内存中的程序和数据。
通过DEBUG,我们可以逐条执行程序功能段的指令,并观察其执行过程中的变化。
这有助于我们理解程序的运行原理,找出其中的错误,并进行调试和修复。
DEBUG程序的基本功能如下:1.查看内存中的程序和数据:DEBUG可以通过指定内存地址来查看内存中的内容。
我们可以使用d命令来显示指定地址范围内的内存内容。
这在调试程序时很有用,可以帮助我们检查变量的值是否正确。
2.修改内存中的程序和数据:DEBUG可以让我们修改内存中的程序和数据,从而实现调试和修复程序的功能。
我们可以使用e命令来修改指定地址处的内存内容。
3.单步执行程序:DEBUG可以将程序的执行过程分解为单条指令的执行,从而帮助我们逐步查看程序的执行情况。
我们可以使用t命令来单步执行程序。
4.中断程序的执行:DEBUG可以在程序执行过程中暂停执行,从而方便我们进行调试。
我们可以使用p命令来中断程序的执行。
5.显示寄存器的值:DEBUG可以显示CPU寄存器的值。
我们可以使用r命令来查看和修改寄存器的值。
这对于调试程序时检查寄存器的值非常有用。
6.显示和修改标志位:DEBUG可以显示和修改CPU的标志位。
我们可以使用f命令来查看和修改标志位的值。
这对于调试程序时检查标志位的值非常有用。
总而言之,DEBUG程序是一个功能强大的调试工具,可以帮助我们调试汇编语言程序的功能段。
通过它,我们可以查看和修改内存中的程序和数据,单步执行程序,中断程序的执行等等。
这些功能可以帮助我们找出程序中的错误,并进行调试和修复。
实验一 利用DEBUG调试程序段2
实验一利用DEBUG调试程序段(2学时)1.实验目的:(1)熟悉DEBUG有关命令的使用方法(2)利用DEBUG掌握有关指令的功能(3)利用DEBUG运行简单的程序段2.实验内容(1)进入和退出DEBUG程序(2)学会DEBUG中的D命令、R命令、T命令、A命令、G命令等的使用。
对于U命令等,也应试一下。
程序段一、MOV AX,1234HMOV BX,4321HMOV CX,AXMOV AX,BXADD BX,CXHLT求:AX=___________ BX=___________ CX=___________程序段二、MOV AX,1200HMOV BX,3400HMOV CX,5600HPUSH CXPUSH AXPUSH BXPOP CXPOP AXPOP BXAX=___________ BX=___________ CX=___________(4)教材P12610:已知AX = 2508H , BX = 0F36H , CX = 0004H , DX = 1864H,求下列每条指令执行后的结果是什么?标志位CF等于什么?①AND AH , CL ②OR BL , 30H ③NOT AX④XOR CX , OFFFOH ⑤TEST DH , OFH ⑥RC L BX , l⑦SHR DX , CL ⑧SAR AL , 1 ⑨SHL BH , DX⑩SAL AX , l结果:3.实验准备(1)仔细阅读有关DEBUG命令的内容,对有关命令,都要事先准备好使用的例子。
4.实验步骤(1)进入DEBUG程序:点击“开始”按钮,选择运行,并输入DEBUG,确定。
(2)用A命令输入程序段。
(3)用T命令逐步运行程序段里的指令,并查看每步执行完后寄存器结果。
DEBUG程序的使用
实验 DEBUG程序的使用一、实验目的1.学习使用DEBUG程序的各种命令。
2.利用DEBUG学习3.了解计算机取指令、执行指令的工作过程。
4.掌握用DEBUG调试自编程序的方法。
二、实验任务1.参照附录1,掌握DEBUG程序的各种命令,重点是命令R,D ,A,U,T,P,G命令的使用。
2.用命令A汇编下列指令,判断指令正误并说明原因。
(1) ROR AX,8(2) LEA DI,[AX](3) MOV DS,2010(4) PUSH AL(5) OUT 900,AL(6) MOV [BX],03.用命令查看8086/8088 CPU在开机后执行的第一条指令。
4.用命令D查看DS:200~22F和F000:200~22F两内存块内容,用命令F将字符“A”分别填入这两个内存块,比较填入前后结果,了解可读写内存RAM和只读内存ROM 的区别。
5.用A命令汇编一条INT 1C指令,用命令T单步执行该指令,比较指令执行前后CS 和IP、堆栈指针SP及堆栈内容变化情况,了解什么是中断向量表,中断向量和中断子程,掌握中断指令的执行过程。
6.利用T,P,G命令,执行下列指令段,注意它们的不同之处。
(1) MOV DI,300MOV SI,400MOV CX,3CLDREP MOVSBINT 3(2) MOV AH,2MOV DL,41INT 21INT 3(3)先在CS:200处汇编一条RET指令,再在CS:100处汇编。
MOV BX,200CALL BXINT 3然后从MOV BX,200处开始执行。
7.用命令A汇编下列程序段,并将程序写到硬盘上,然后调试程序段,观察程序段能否完成指定功能,若不能,说明原因,并修改程序。
(1)完成将DS:2000开始的5个字节内存内容相加,并把相加的结果存放在DS2005内存单元中。
MOV CX,5MOV AL,0MOV BX,2000nest: ADD AL,[BX]INC BXDEC CXLOOP nestMOV [BX],ALINT 3(2)以双重循环来实现延时,然后再给AX赋值。
微机原理与接口技术 DEBUG 调试程序的应用(1)
实验一Debug 调试程序的应用一、实验目的1.掌握Debug常用命令的应用。
2.利用Debug调试可执行文件(*.EXE)。
二、实验内容1. 进入Debug,使用A命令将源程序写入100H开始的内存并汇编,然后使用G命令运行程序,接着用U命令反汇编,将机器指令送到起始地址为200H 的若干单元并加以验证,用Q命令退出Debug,返回DOS提示符。
2. 进入Debug,使用A命令将源程序写入100H开始的内存并汇编,然后使用G命令运行程序,接着用D命令观察运行结果后,在用U命令反汇编,用Q命令退出Debug,返回DOS提示符。
3.进入Debug,用A命令写入汇编源程序,接着用R命令显示状态,并用T命令单条执行指令,注意在执行命令的同时观察相应寄存器的状态。
4.练习使用填充命令F、搬家命令M和比较命令C。
5.利用Debug调试可执行文件(*.EXE)。
三、实验仪器、材料1. 软件DOSBOX、MASM2. PC微机一台四、实验步骤1.进入debug,使用A命令:-a100写入以下代码:MOV DL, 33H ;字符3的ASCII送DLMOV AH, 2 ;使用DOS的2号功能调用INT 21H ;进入功能调用,输出‘3’INT 20H ;执行INT 20H中断服务程序,结束程序,返回DOS 写完回车两下,再用-g=起始地址结束地址命令回车,再用-u命令回车,用-d100可得如图1-1,然后用-e200命令空格依次输入:B2 33 B4 02 CD 21 CD 20回车,用-d200可得如图1-2,用q退出debug。
2.进入dedug,使用A命令:-a300 写入以下代码MOV AL, [0120]ADD AL, [0122]DAAMOV BY[0124],ALMOV AL, [0121]ADC AL, [0123]DAAMOV BY[0125],ALINT 20用-g命令,再-d100查看结果如图2-1,在用U命令反汇编,用Q命令退出debug。
实验一 DEBUG调试程序的应用
调试工具debug debug的使用及基本指令的用法 实验一 调试工具debug的使用及基本指令的用法
8、执行一段程序
-g=100 106 g=100 AX=1234 BX=0000 AX=1234 BX=0000 DS=10 10DD ES=10 10DD DS=10DD ES=10DD 10DD DD: 10DD:0106 36 10DD:0107 A22C41 从CS:100H开始,执行到CS:106处停止。 CS:100H开始,执行到CS:106处停止。 CS 处停止 CX=0000 DX=0000 CX=0000 DX=0000 SP=CFDE SS=10 10DD CS=10 10DD IP=0106 SS=10DD CS=10DD IP=0106 SS: SS: MOV [412C],AL BP=0000 SI=0000 DI=0000 BP=0000 SI=0000 DI=0000 OV DN DI PL NZ NA PO NC SS:412C=00
标志寄存器各标志位的含义: 标志寄存器各标志位的含义:
溢出标志OF: OV/NV( 溢出/ 不溢出) 溢出标志OF: OV/NV(1溢出/0不溢出) OF 方向标志DF DN/UP( DF: 方向标志DF: DN/UP(1减/0增) 中断标志IF EI/DI( 开中断/ 关中断) IF: 中断标志IF: EI/DI(1开中断/0关中断) 符号标志SF NG/PL( SF: 符号标志SF:NG/PL(1负/0正) 零标志ZF ZR/NZ( ZF: 非零) 零标志ZF: ZR/NZ(1零/0非零) 辅助进位AF AC/NA( AF: 辅助进位AF:AC/NA(1有/0无) 奇偶标志PF PE/PO( PF: 奇偶标志PF:PE/PO(1偶/0奇) 进位标志CF CY/NC( CF: 进位标志CF:CY/NC(1有/0无)
DEBUG调试程序应用实验报告总结
DEBUG调试程序应用实验报告总结电子电气工程学院学生实验报告专业级1 班2 组姓名学号课程名DEBUG 调试程序的应用指导教师成绩一,实验预习实验序号 1 实验题目DEBUG 调试程序的应用预习日期要求: 1.实验目的; 2,实验原理; 3,画出实验原理图; 4 实验设备; 5,预习内容(该实验完成的内容);6,记录表格设计一实验目的1、了解 DEBUG调试程序常用命令的基本格式、主要功能和使用方法。
2、熟悉进入或退出DEBUG调试程序运行界面的步骤。
3、掌握用DEBUG调试程序进行程序编辑、调试、运行、结果检查的基本方法。
4、进一步汇编语言上机环境及基本操作二实验原理1,启动 DEBUG程序,在 DEBUG环境下建立和汇编程序2,输入程序并汇编 A2 ,_A 100169C(CS):0100(ip)MOVDL, 33;DEBUG默认 16 进制数169C: 0102MOVAH,2;dos 的 2 号功能调用169C: 0104INT2l;功能调用169C: 0106INT(中断)20;中断169C: 0108;回车结束程序的输入3.运行程序_G=0100(全速运行)得到 34,用反汇编命令_U。
然后分析该程序的指令:33 的ascll 的值为3, MOV 是将原操作数送到DL 中( DL 为目标操作数)。
5,将机器指令程序送到起始地址为200H 的若干单元6,执行机器指令程序 _G=0200 得到 37,执行 T 命令,实现单步运行。
8,执行 D 命令查看存储单元的原值。
E 是修改内存, R 显示修改内存命令。
四实验设备微型计算机一台三、实验内容及步骤:1、启动 DEBUG程序,进入DOS界面“运行”-“cmd ’)这时屏幕上会出现“_”提示符,等待键入DEBUG命令。
“ _”号是进入 DEBUG的提示符,在该提示符下可键入任意 DEBUG命令。
现在用 A 命令输入程序如下:②.输入程序并汇编_A 100169C: 0100MOVDL,33; DEBUG默认 16 进制数字符3 的 ASCII码送 DL169C: 0102MOVAH,2;使用 DOS 的 2 号功能调用169C: 0104INT2l;进入功能调用,输出‘3’169C:0106INT20;BIOS中断服务,程序正常结束。
实验三:调试程序Debug的使用
16~17春《微机原理》课程实验报告姓名:学号:成绩:实验三:调试程序Debug的使用一、简述对Debug的功能理解。
通过这次实验,我觉得Debug对于汇编语言程序的编写和调试是非常重要的,我们在将所需的程序编好后经过汇编和连接得到的可执行程序往往并不能一运行就成功,而汇编和连接过程只能查出源程序的语法错误,并不能查出功能上的错误和不完善的地方,因此调试过程必须逐段进行,有时甚至是逐条指令的执行,以观察是否达到预期结果,从而发现程序语句编排上的错误。
而Debug正是可以实现这一功能的系统软件,它为我们提供了一个监督和控制程序运行过程的环境和条件,这样我们就可以发现程序中存在的问题,甚至直接修改一些小的问题。
二、按照实验指导书的“实验基本要求”以及“实验内容”的要求,描述相关实验内容的完成情况。
1.DEBUG的基本操作:(1)从WINDOWS进入DOS之后,输入命令启动DEBUG:C:>DEBUG 回车(2)输入R命令,查看和记录CPU各个寄存器的内容:-R回车看到什么?(3)输入A命令,汇编下面的字符“WINDOWS”显示程序(DEBUG调试环境中,默认为十六进制,因此源程序中十六进制数后面不写H):-A 100 ;从偏移地址是0100H处开始写指令MOV AH,2MOV DL, 57 ;57H 是“W”的ASCII码INT 21 ;INT 21是DOS 功能调用,AH=2代表2号功;能。
这3句合起来的功能是:显示DL中的字符MOV DL, 49INT 21MOV DL, 4EINT 21MOV DL, 44MOV DL, 4FINT 21MOV DL, 57INT 21MOV DL, 53INT 21INT 3 ;功能是产生一个断点,不要省略(4)输入U命令反汇编上面的程序:-U 100问:这里100代表什么?答:从偏移地址100处开始反汇编.(5)输入G命令连续运行上面的程序,记录运行结果:-G=100(6)输入E命令把上面程序中的数据57,49,4E,44,4F,57,53依次分别改为57,45,4C,43,4F,4D,45:-E 103 回车(以下同)-E 107-E 10B-E 10F-E 113-E 117(7)输入D命令查看程序机器码的存放情况:-D 100 11E ;看从100开始到11E的机器码(8)输入G命令再连续运行程序,并记录运行结果:-G=100(9)依次输入下面的T命令(单步执行)和G命令(设置断点并启动运行),记录各命令的运行结果:-T=100 回车-G=100 106 回车-G=100 10A 回车-G=100 10E 回车-G=100 11E 回车2.一字节十六进制数转换为ASCII码(只考虑大写字母)用E命令在DS:1000单元中存放十六进制数5A,用A命令从CS:0100单元开始存放下面程序的机器码,并调试运行(DEBUG调试环境中,源程序中十六进制数后面不写H):CS: 0100 8D360010 LEA SI,[1000]0104 8D3E2010 LEA DI,[1020]0108 8A04 MOV AL,[SI]010A 240F MOV BL,AL010C 240F AND AL,0F010E E80E00 CALL 011F0111 80E30 AND BL,F00114 B90400 MOV CX,40117 D2EB SHR BL,CL0119 88D8 MOV AL,BL011B E80100 CALL 011F011E F4 RET011F 3C09 CMP AL,090121 7602 JBE 01250123 0407 ADD AL,070125 0430 ADD AL,300127 8805 MOV [DI],AL0129 47 INC DI012A C3 RET运行结果:1)写出执行上述程序的命令行G=100 。
实验一调试程序DEBUG的使用实验报告
实验一调试程序D E B U G的使用实验报告标准化管理部编码-[99968T-6889628-J68568-1689N]南昌理工学院实验报告二O一二年月日课程名称:微机原理与接口技术实验名称:调试程序DEBUG的使用班级:姓名:同组人:指导教师评定:签名:【一、实验名称】调试程序DEBUG的使用【二、实验目的】1.掌握汇编程序的编辑,编译,连接和执行的全过程;2.学习和掌握用DEBUG调试程序的方法。
【三、实验内容和原理】1.用编辑软件,输入以下汇编语言源程序:DATSEGMENTADB20;(自定)BDB15;(自定)YDB3DUP(0)ZDB0,0DATENDS STASEGMENTSTACKDW50DUP(?) STAENDS CODSEGMENT ASSUMECS:COD,DS:DAT STARPROCFAR PUSHDSXORAX,AXPUSHAXMOVAX,DAT MOVDS,AXMOVAX,STA MOVSS,AXMOVAL,AMOVZ,AL MOVZ+1,AL CALLSUB1MOVAL,BMOVZ,ALMOVZ+1,AL CALLSUB1 MOVAL,AMOVZ,ALMOVAL,BMOVZ+1,AL CALLSUB1 ADDWORDPTRY,AX ADCBYTEPTR[Y+2],0 RETSTARENDPSUB1PROC MOVAL,Z MOVAH,Z+1MULAH ADDWORDPTRY,AX ADCBYTEPTR[Y+2],0 RETSUB1ENDP CODENDS ENDSTAR2.通过编译,连接形成可执行文件;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【五、实验过程】根据实验内容,按步骤完成。
实验二 调试程序 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指令实验报告
成绩评定教师签名嘉应学院计算机学院实验报告课程名称:汇编语言程序设计开课学期: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调试程序的使用
1、实验目的及要求
2、实验原理、实验内容
3、实验仪器设备及材料
4、操作方法与实验步骤
5、实验数据记录及处理
6、实验结果分析及讨论
1、实验目的及要求
目的:
1.学习使用DEBUG程序的各种命令。
2.利用DEBUG学习了解计算机取指令、执行指令的工作过程。
3.掌握用DEBUG调试自编程序的方法。
要求:
A0000H~BFFFFH是8086的显存地址,改变其中的值时屏蔽内容会有改变,如 颜色改变,
而其值会直接显示在显示器上。
仪器设备损坏、非正常损耗材料(试剂)及处理情况:
无
教师对报告的最终评价及处理意见:
教师签字:
年月日
XXXX:0116 MOV AH,0 (10)
XXXX:0118 MOV CH,0 (11)
XXXX:011A MOV CL,[BX+SI+1] (12)
XXXX:011D ADD AX,CX (13)
XXXX:011F INT 20
(1)用D命令显示XXXX:0200 ---XXXX:0203单元内容。
1.实验前认真阅读实验教程中有关内容,明确实验目的和实验任务。
2.每次实验前应有预习报告,未预习者不允许参加实验。
实验准备:
2、实验原理、实验内容
1、参照实验准备,掌握DEBUG程序的各种命令,重点是命令R,D,A,U,T,E命令的使用。
2、按照以下步骤输入一系列的命令和指令,编写出简单的汇编语言指令,并完成指定任务。
XXXX:0107 MOV AX,[150] (04)
XXXX:010A ADD BX, ,AX (05)
XXXX:010C MOV AL,[BX] (06)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子电气工程学院学生实验报告
专业级 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 显示修改内存命令。
四实验设备
微型计算机一台
三、实验内容及步骤:
1、启动 DEBUG程序,进入DOS界面“运行”-“cmd ’)
这时屏幕上会出现“_”提示符,等待键入DEBUG命令。
“ _”号是进入 DEBUG的提示符,在该提示符下可键入任意DEBUG命令。
现在用 A 命令输入程序如下:
②.输入程序并汇编
_A 100
169C: 0100 MOV DL,33 ; DEBUG默认 16 进制数字符 3 的 ASCII码送 DL
169C: 0102 MOV AH,2 ;使用 DOS 的 2 号功能调用
169C: 0104 INT 2l ;进入功能调用,输出‘3’
169C:0106 INT 20 ;BIOS中断服务,程序正常结束。
“INT 20H”也可改
为“ INT 3”,表示程序执行到此暂停。
169C: 0108 ;回车结束程序的输入
至此程序已输入完毕,并汇编成机器指令。
现在用G 命令运行程序如下:
③.运行程序
_G=0100
3
Program terminated normally
如果现在想分析一下该程序的指令,可以用反汇编命令U 作如下操作:
④.反汇编
_U 100, 108
169C: 0100 B233 MOV DL,33
169C: 0102 B402 MOV AH, 02
169C: 0104 CD21 INT 21
169C: 0106 CD20 INT 20
169C: 0108
⑤.将机器指令程序送到起始地址为200H 的若干单元
_E 0200 B2, 33, B4, 02, CD, 21,CD, 20
⑥.执行机器指令程序
_G=0200
3
Program terminated normally
(2) . 在内存 DS:1200H 开始的存储单元中建立一个大写字母区。
①.手工编写程序,实现在内存DS: 1200H 开始的存储单元中建立一个大写字母区。
②.进入DEBUG,用 A 命令输入程序并汇编。
—A 100
20D0: 0100 MOV CX,1A ;DEBUG默认 16 进制数
20D0: 0103 MOV BX, 1200
20D0: 0106 MOV AL, 41
20D0: 0108 MOV [BX],AL ;由此处可知符号地址 LP的偏移地址为 0108 20D0: 010A INC AL
20D0: 010C INC BX
20D0: 010D LOOP 0108 ;LP 用偏移地址 0108 代替
20D0: 010F INT 3
20D0: 0110;回车结束程序的输入
③.用 D 命令先查看存储单元的原值
—D1200
④.用 G 命令运行程序
—G=01
回车后,屏幕上出现当前所有寄存器和标志位的值,并出现DEBUG的提示符。
4、退出 DEBUG
在 DEBUG命令提示符“ _”下键入 Q 命令,即可结束DEBUG的运行,返回DOS操作系统。
四,实验心得
通过本次实验,了解DEBUG 调试程序常用命令的基本格式、主要功能和使用方法。
熟
悉进入或退出DEBUG调试程序运行界面的步骤。
掌握用DEBUG调试程序进行程序编辑、调试、运行、结果检查的基本方法。
进一步汇编语言上机环境及基本操作。
感觉它比其他高级
语言确实要复杂,但是能更一步体会计算机是如何操作的!通过对debug 的运用,我们了
解到了很多关于电脑方面的知识,也知道了debug 的强大功能。
我们应多加练习,以便熟
悉的掌握这方面的知识。