《DEBUG用法》PPT课件.ppt_第1页
《DEBUG用法》PPT课件.ppt_第2页
《DEBUG用法》PPT课件.ppt_第3页
《DEBUG用法》PPT课件.ppt_第4页
《DEBUG用法》PPT课件.ppt_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

datarea segment string1 db move the cursor backward. string2 db move the cursor backward.; mess1 db match.,13,10,$ mess2 db no match!,13,10,$ datarea ends prognam segment main proc far assume cs:prognam,ds:datarea,es:datarea start: push ds ;set up stack for return sub ax,ax push ax ;set DS register to current data segment mov ax,datarea mov ds,ax mov es,ax ;MAIN PART OF PROGRAM GOES HERE lea si,string1 lea di,string2 cld mov cx,25 repz cmpsb jz match lea dx,mess2 Cld,STD针 对DF位设 置串处理指 令的方向 CMPS格式: CMPS SRC,DST /CMPSB.CMPSW 格式举例: CMPS DS:SI,ESDI 功能:将DS:SI中的类容减ES:DI中的数据, 置标志位,将SI,DI 修改. 与 REPZ/E 连用,当为0(相等)时继续 则可 以比较两个等长串是否相等. jmp short disp match: lea dx,mess1 disp: mov ah,09 int 21h ret main endp ;- prognam ends ;* end start Debug 的用法 一、DEBUG程序的调用 在DOS的提示符下,可键入命令: C:DEBUGD:PATHFILENAME.EXEPARM1PARM2 命令中的D:指定驱动器,PATH为路径,文件名是被调试文件的 名字。如用户键入文件,则DEBUG将指定的文件装入存储器中, 用户可对其进行调试。如果未键入文件名,则用户可以用当前存 储器的内容工作,PARM1和PARM2则为运行被调试文件时所需 要的命令参数。 在DEBUG程序调入后,将出现提示符,此时就可用DEBUG命 令来调试程序。 DEBUG是一种调试工具,它通过单步、设置断点等方式为 汇编语言程序员提供了非常有效的调试手段。 Runs Debug, a program testing and editing tool. DEBUG drive:pathfilename testfile-parameters drive:pathfilename : Specifies the file you want to test. testfile-parameters :Specifies command-line information required by the file you want to test. After Debug starts, type ? to display a list of debugging commands. 运行DEBUG /?以后的解释 Register (寄存器) 格式:r register 作用:显示并修改指定寄存器的内容。 例:r 显示所有的寄存器内容 r f 显示并可以修改标志位寄存器 的内容,但是不能修改tf位。在指令中也 没有能修改tf位的。tf位只能由debug中 的一些单步执行命令来修改 r ax 显示并可以修改AX寄存器的内 容,回车可以不进行修改 Dump (倾泻) 格式:d range 作用:显示指定范围的存储器内容,使用段跨 越前缀指定段寄存器。如果什么都没有指定, 则显示上一个D命令后的80个字节。 例: d 0 显示数据段从0开始的80个字节的存储器内容 d 0000 0010 显示数据段从0000到0010的 d cs:0000 L 6 显示代码段从0000开始的6个单 元的内容在格式中range的表示方法 D 0013 L 4 显示从0013到0016的内容,而0010 到0012用空位表示 Enter(进入) 格式:e address list 作用:修改指定单元的存储器内容 例:e ds:1000 f3xyz80 用f3xyz80替换从ds:0000开始的5个单 元的内容 e ds:0010 1165:0100 89 一个一个的修改存 储器的内容。 Assemble(集合、装配、汇编) 格式:A address 作用:将一条汇编语言 语句汇编在指定的地址 单元 ,赋值伪操作用在a命令中直接执行。而 指令要用T命令来执行。 例:A 0000(CS:0000) CS:* MOV AX,BX (F) MOV AX,100H (F) MOV BX,10H (R) cs:* db mess1直接执行。 cs:* data db mess1 错的不支持分配 符号地址 在格式中 表示可有可无的选项 在debug中把数默认为16进制,而程序中默认 为10进制。 Trace(跟踪) 格式:t =address value 作用:单步跟踪一条或几条语句的执行,即 显示寄存器的内容 例:t=0000 3 如果装载了程序则从程序的 cs:0000开始向下执行3条语句,没有则从当 前 cs:0000开始向下执行3条语句。 t 从前一个t命令开始再执行一条,并 显示寄存器的内容 t 3从前一个t命令开始再执行三条,并 显示寄存器的内容 Go(执行) 格式: G =address1address2address3 作用:其中,地址1指定了运行的起始地址,如不指定则从当 前的CS:IP开始运行。后面的地址均为断点地址,当指令执 行到这些断点地址中的任意一个时,就停止执行并显示当前所 有寄存器及标志位的内容,和下一条将要执行的指令。 例:g=0002 000f 执行cs段从0002到000f的语句 例:用在已经用debug命令装入了一个程序的情况。 G 执行整个程序 G000b 从程序开始执行到000b,或从前一个G命令结束的 地方到000B 在程序中遇到中断调用时不能再用T命令跟踪,而应该用G命 令运行程序。 Proceed 继续执行 格式:p =address number 作用:执行从指定地址开始的几条指令 例:p=0000 3 执行从0000开始的3条指令 p 执行当前CS:IP的指令,显示寄存器内容 P=0010 执行CS:0010指向的一句语句,显示寄存器 内容 P 6 执行当前CS:IP指向的以及以下的六句语句,显 示寄存器内容 通常在已经用debug装入程序后,用p 指令来单步调试 Fill 填充 格式:f range list 作用:用指定的值填充指定的单元. 例: f 0000 0020 01 从数据段的0000开 始到0020 ,全部用01填充. F 0000 l 20 02 从数据段0000开始 的20个单元都被用02填充 f cs:0000 0050 01xyz0d 从代码 段的0000开始到0050 用01xyz0d 反复填 充 compare 比较 格式:c range address 作用:比较给定的范围内的数据 例: c ds:0000 l 20 es:0000 用数据段从 0000开始的20个单元的内容与附加段从 0000开始的20个单元的内容进行比较 Move 移动 格式:m range address 作用:将指定单元的内容移动到被指定单 元 例:m ds:0000 0010 es:0000 将数据段 0000到0010的数据移动到附加段0000到 0010. Search 查找 格式: s range list 作用:在指定范围内查找给定的数据 例: s cs:0000 l30 dd 在代码段0000后 的30 个单元个内查找dd. Input 输入 output 输出 输入、输出相对于CPU与端口,从CPU到端口 是输出,从端口到CPU是输入。 格式:input port 作用:取指定端口号的数据(对于

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论