汇编上机调试程序DEBUG.doc

上传人:大米 文档编号:543003819 上传时间:2023-03-03 格式:DOC 页数:11 大小:73KB
返回 下载 相关 举报
汇编上机调试程序DEBUG.doc_第1页
第1页 / 共11页
汇编上机调试程序DEBUG.doc_第2页
第2页 / 共11页
汇编上机调试程序DEBUG.doc_第3页
第3页 / 共11页
汇编上机调试程序DEBUG.doc_第4页
第4页 / 共11页
汇编上机调试程序DEBUG.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《汇编上机调试程序DEBUG.doc》由会员分享,可在线阅读,更多相关《汇编上机调试程序DEBUG.doc(11页珍藏版)》请在金锄头文库上搜索。

1、汇编语言程序设计实验指导书实验一 调试程序DEBUG调试程序是以DOS外部命令程序的形式提供的,它的文件名为DEBUG.COM。在进入DEBUG后,机器呈现一个控制测试的环境,程序员能够监视和控制被调用程序的运行,可以直接发现问题,判定问题是否解决,输入汇编指令层的源程序就能立即得到其机器语言程序。优点是:可在最小的环境下运行;调试周期短;程序员可在不熟悉汇编语言伪指令的情况下编程及运行汇编程序;使用户更紧密的与计算机中真正进行的工作相联系。缺点是:不能使用MASM提供的伪指令,编程效率低、繁琐、程序不宜太长,不便于分块程序设计。一、实验目的熟悉debug环境;学习和掌握汇编语言源程序(小汇编

2、)的编写方法;学会调试简单的程序。二、实验原理使用MS-DOS中自带的debug.exe调试简单汇编语言程序。三、主要仪器及耗材计算机与Windows系统,MS-DOS,DEBUG.EXE。四、实验内容与步骤1 实验步骤(1)启动计算机的WINDOWS操作系统,运行DEBUG程序。方法1:在开始菜单中找到“运行”,输入“cmd”后确定,启动ms-dos程序,进入命令提示符下,再输入“DEBUG”并按回车,即启动DEBUG调试程序。方法2:在开始菜单中找到“运行”,输入“DEBUG”后确定,即启动DEBUG调试程序。例1.在DEBUG在运行如下程序-a 100 MOV DL,33H ;字符3的A

3、SCII码送DL MOV AH,2 ; 使用DOS的2号功能调用 INT 21H ; 进行功能调用,输出字符3 INT 20H ; 正常结束程序中断调用-g结果(2)使用DEBUG命令关于DEBUG程序的更详细用法,可再进入DEBUG程序后输入“?”而获得。DEBUG的命令共有18条。汇编命令(Assemble)用途:输入汇编命令,并把它们汇编成机器代码,相继存放在从指定地址开始的存储区中。格式:A address说明:所有输入数字是十六进制的。将输入额度指令从指定的地址address处开始装入内存的连续单元。否则,把语句装入CS:0100确定的区域中;如果前面已经使用了A命令,那么就在前一个

4、A命令所装入的最后一条指令的后继单元中接着输入命令。举例:见例1比较命令(Compare)用途:比较存储器中两个数据块的内容。格式:C range address说明:比较存储器两个数据的内容,range给出第一个数据块的首地址及长度,address给出第二个数据块的首地址。如果 range 和 address 内存区域相同,Debug 将不显示任何内容而直接返回到 Debug 提示符。如果有差异,Debug 将按如下格式显示:address1 byte1 byte2 addess2 举例:C 100,10f 300C 100L10 300效果一样都是把DS:100开始的存储器的16个字节同D

5、S:300开始的16个字节进行比较。显示内存命令(DUMP)用途:显示存储器的命令。格式:Daddress 或者 Drange说明:用两个部分来显示内存的内容。十六进制部分(每个字节的值都用十六进制格式表示)和 ASCII 码部分(每个字节的值都用 ASCII 码字符表示)。每个非打印字符在显示的 ASCII 部分由句号 (.) 表示。举例:如果键入以下命令,Debug 将从 CS:100 开始显示 20h 个字节的内容:d cs:100 l 20 如果键入以下命令,Debug 将显示范围从 CS 段的 100h 到 115h 中所有字节的内容: d cs:100 115修改内存命令(Ente

6、r)用途:替换;显示和允许顺序方式修改字节。格式:E address list说明:如果只输入偏移地址作为地址,那么E命令认为是包含在DS寄存器内的那个段。修改的两种格式:E address list 例如:E ds:100 F3 “XYZ”8D ;用清单中指定的5个字节填满ds:100到ds:104存储单元。eds:100 This is the text example该字符串将从 DS:100 开始填充 24 个字节。假定键入以下命令:ecs:100Debug 按下面的格式显示第一个字节的内容:04BA:0100 EB.要将该值更改为 41,请在插入点键入 41,如下所示:04BA:01

7、00 EB.41_可以用一个 e 命令键入连续的字节值。在键入新值后按 SPACEBAR(空格键),而不是按 ENTER 键。Debug 显示下一个值。在此范例中,如果按三次 SPACEBAR(空格键),Debug 将显示下面的值:04BA:0100 EB.41 10. 00. BC._要将十六进制值 BC 更改为 42,请在插入点键入 42,如下所示:04BA:0100 EB.41 10. 00. BC.42_假定决定值 10 应该是 6F。要纠正该值,请按 HYPHEN 键两次以返回到地址 0101(值 10)。Debug 显示以下内容:04BA:0100 EB.41 10. 00. BC

8、.42-04BA:0102 00.-04BA:0101 10._在插入点键入 6f 更改值,如下所示:04BA:0101 10.6f_按 ENTER 停止 e 命令并返回到 Debug 提示符下。填写命令(File)用途:用清单中的值填写range范围内的存储单元。格式:F range list说明:如果 range 包含的字节数比 list 中的数值大,Debug 将在 list 中反复指派值,直到 range 中的所有字节全部填充。如果在 range 中的任何内存损坏或不存在,Debug 将显示错误消息并停止 f 命令。如果 list 包含的数值多于 range 中的字节数,Debug 将

9、忽略 list 中额外的值。举例:F 4BA:100 L5 F3”XYZ”8D ;用指定的5个字节填写到内存的04BA:104单元中。注意,存储清单字符是ASCII字符码,因此100104单元中为F3 58 59 5A 8D.执行命令(GO)用途:执行正在调试的程序。运行到断点处则停止执行。格式:G =address addressaddress说明:如果不采用=address 参数,就从CS和IP寄存器内容决定的地址开始执行程序。如果指定=address,则程序就从CS:address处开始执行。举例:G 102 1EF 208 ;当前指令从CS:IP的当前值开始,指定了3个断点,CS:10

10、2,CS:1EF,CS:208十六进制算术运算命令(Hexarithmetic)用途:先把两个十六进制数的值相加,然后第一个值减去第二个值,在一行上显示和与差。格式:H value value举例:H 0F 8结果显示为:17 07 分别为000F和0008的十六进制的和与差。输入命令(Input)用途:从指定的端口输入并显示(用16进制)一个字节。格式:I portaddress举例:I 2F8显示6B装入命令(Load)用途:把文件或绝对盘扇区装入内存中。格式:L addressdrive sector sector说明:用单个Load命令可装入的最大扇区数是80H。drive指定包含读取

11、指定扇区的磁盘的驱动器。该值是数值型:0 = A, 1 = B, 2 = C 等.举例:L 4BA:100 1 0F 6D ;传送命令(Move)用途:把range指定的内容单元的内容,传送到以address指定开始的一些单元中。格式:M range address说明:源区域的数据仍保持不变,除非由传送命令重写过。举例:M CS:100 110 500 ;共17个字节11.命名命令(Name)用途:为读写磁盘文件定义的文件名格式:H filespecfilespec说明:如果在无文件说明时启动DEBUG,在用L命令装入文件之前,必须用Name命令。举例:-N myprog -L12.输出命令

12、(Output)用途:把字节发送到指定的端口。格式:O Portaddress byte举例:O 2F8 4F 13.退出命令(Quit)用途:结束DEBUG程序。格式:Q说明:Q命令不保存内存中正工作的文件,需要时可以用Write命令保存文件。14.寄存器命令(Register)用途:显示单个寄存器内容;显示全部寄存器和标志位;显示标志位。标志名标志为1标志为0OF溢出OVNVDF方向DNUPIF中断EIDISF符号NGPLZF零ZRNZAF辅助进位ACNAPF奇偶PEPOCF进位CYNC格式:R Registername举例:要查看所有寄存器的内容、所有标记的状态和当前位置的指令解码表,请

13、键入以下命令:R如果当前位置是 CS:11A,显示外观将类似于以下内容:AX=0E00 BX=00FF CX=0007 DX=01FF SP=039D BP=0000 SI=005C DI=0000DS=04BA ES=04BA SS=04BA CS=O4BA IP=011A NV UP DI NG NZ AC PE NC04BA:011A CD21 INT 21要只查看标志的状态,请键入以下命令:rfDebug 按以下格式显示信息:NV UP DI NG NZ AC PE NC - _现在,您可以按任意顺序键入一个或多个有效的标志值,其中可以有或没有空格,如下所示:nv up di ng n

14、z ac pe nc pleicyDebug 结束 r 命令并显示 Debug 提示符。要查看更改,请键入 r 或 rf 命令。Debug 将显示以下内容:NV UP EI PL NZ AC PE CY - _按 ENTER 返回到 Debug 提示符。15.搜索命令(Search)用途:按照list清单中的字符检索range范围。格式:S range list说明:以显示被查找到的匹配字符所在的地址来指明全部的匹配。没有匹配的显示“-“举例:S CS:100 110 4116.跟踪命令(Trace)用途:从CS:IP或者=address单元中的指令开始单步执行一条或多条指令。格式:T=add

15、ressvalue17.反汇编命令(Unassemble)用途:反汇编命令可把内存中的机器码转换成汇编语句,并显示指令的地址、机器码以及汇编语句。格式:Uaddress 或者Urange举例:要反汇编 16 (10h) 字节,从地址 04BA:0100 开始,请键入以下命令:u04ba:100l10Debug 按以下格式显示结果:04BA:0100 206472 AND SI+72,AH04BA:0103 69 DB 6904BA:0104 7665 JBE 016B04BA:0106 207370 AND BP+DI+70,DH04BA:0109 65 DB 6504BA:010A 63 DB 6304BA:010B 69 DB 690

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号