《DEBUG用法》课件

上传人:x**** 文档编号:133691252 上传时间:2020-05-29 格式:PPT 页数:20 大小:90KB
返回 下载 相关 举报
《DEBUG用法》课件_第1页
第1页 / 共20页
《DEBUG用法》课件_第2页
第2页 / 共20页
《DEBUG用法》课件_第3页
第3页 / 共20页
《DEBUG用法》课件_第4页
第4页 / 共20页
《DEBUG用法》课件_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《《DEBUG用法》课件》由会员分享,可在线阅读,更多相关《《DEBUG用法》课件(20页珍藏版)》请在金锄头文库上搜索。

1、datareasegmentstring1db movethecursorbackward string2db movethecursorbackward mess1db match 13 10 mess2db nomatch 13 10 datareaends prognamsegmentmainprocfarassumecs prognam ds datarea es datareastart pushds setupstackforreturnsubax axpushax setDSregistertocurrentdatasegmentmovax datareamovds axmove

2、s ax MAINPARTOFPROGRAMGOESHEREleasi string1leadi string2cldmovcx 25repzcmpsbatchleadx mess2 Cld STD针对DF位设置串处理指令的方向 CMPS格式 CMPSSRC DST CMPSB CMPSW格式举例 CMPSDS SI ES DI 功能 将DS SI中的类容减ES DI中的数据 置标志位 将SI DI修改 与REPZ E连用 当为0 相等 时继续则可以比较两个等长串是否相等 jmpshortdispmatch leadx mess1disp movah 09int21hretmainendp p

3、rognamends endstart Debug的用法 一 DEBUG程序的调用 在DOS的提示符下 可键入命令 C DEBUG D PATH EXE PARM1 PARM2 命令中的D 指定驱动器 PATH为路径 文件名是被调试文件的名字 如用户键入文件 则DEBUG将指定的文件装入存储器中 用户可对其进行调试 如果未键入文件名 则用户可以用当前存储器的内容工作 PARM1和PARM2则为运行被调试文件时所需要的命令参数 在DEBUG程序调入后 将出现提示符 此时就可用DEBUG命令来调试程序 DEBUG是一种调试工具 它通过单步 设置断点等方式为汇编语言程序员提供了非常有效的调试手段 R

4、unsDebug aprogramtestingandeditingtool DEBUG drive path testfile parameters drive path Specifiesthewanttotest testfile parameters Specifiescommand lineinformationrequiredbythewanttotest AfterDebugstarts type todisplayalistofdebuggingcommands 运行DEBUG 以后的解释 Register 寄存器 格式 r register 作用 显示并修改指定寄存器的内容

5、例 r显示所有的寄存器内容rf显示并可以修改标志位寄存器的内容 但是不能修改tf位 在指令中也没有能修改tf位的 tf位只能由debug中的一些单步执行命令来修改rax显示并可以修改AX寄存器的内容 回车可以不进行修改 Dump 倾泻 格式 d range 作用 显示指定范围的存储器内容 使用段跨越前缀指定段寄存器 如果什么都没有指定 则显示上一个D命令后的80个字节 例 d0显示数据段从0开始的80个字节的存储器内容d00000010显示数据段从0000到0010的dcs 0000L6显示代码段从0000开始的6个单元的内容在格式中 range 的表示方法D0013L4显示从0013到001

6、6的内容 而0010到0012用空位表示 Enter 进入 格式 eaddress list 作用 修改指定单元的存储器内容例 eds 1000f3 xyz 80用f3 xyz 80替换从ds 0000开始的5个单元的内容eds 00101165 010089一个一个的修改存储器的内容 Assemble 集合 装配 汇编 格式 A address 作用 将一条汇编语言语句汇编在指定的地址单元 赋值伪操作用在a命令中直接执行 而指令要用T命令来执行 例 A0000 CS 0000 CS MOV AX BX F MOV AX 100H F MOV BX 10H R cs db mess1 直接执行

7、 cs datadb mess1 错的不支持分配符号地址在格式中 表示可有可无的选项在debug中把数默认为16进制 而程序中默认为10进制 Trace 跟踪 格式 t address value 作用 单步跟踪一条或几条语句的执行 即显示寄存器的内容例 t 00003如果装载了程序则从程序的cs 0000开始向下执行3条语句 没有则从当前cs 0000开始向下执行3条语句 t从前一个t命令开始再执行一条 并显示寄存器的内容t3从前一个t命令开始再执行三条 并显示寄存器的内容 Go 执行 格式 G address1 address2 address3 作用 其中 地址1指定了运行的起始地址 如

8、不指定则从当前的CS IP开始运行 后面的地址均为断点地址 当指令执行到这些断点地址中的任意一个时 就停止执行并显示当前所有寄存器及标志位的内容 和下一条将要执行的指令 例 g 0002000f执行cs段从0002到000f的语句例 用在已经用debug命令装入了一个程序的情况 G执行整个程序G000b从程序开始执行到000b 或从前一个G命令结束的地方到000B在程序中遇到中断调用时不能再用T命令跟踪 而应该用G命令运行程序 Proceed继续执行格式 p address number 作用 执行从指定地址开始的几条指令例 p 00003执行从0000开始的3条指令p执行当前CS IP的指令

9、 显示寄存器内容P 0010执行CS 0010指向的一句语句 显示寄存器内容P6执行当前CS IP指向的以及以下的六句语句 显示寄存器内容通常在已经用debug装入程序后 用p指令来单步调试 Fill填充格式 frangelist作用 用指定的值填充指定的单元 例 f0000002001从数据段的0000开始到0020 全部用01填充 F0000l2002从数据段0000开始的20个单元都被用02填充fcs 0000005001 xyz 0d从代码段的0000开始到0050用01 xyz 0d反复填充 compare比较格式 crangeaddress作用 比较给定的范围内的数据例 cds 0

10、000l20es 0000用数据段从0000开始的20个单元的内容与附加段从0000开始的20个单元的内容进行比较 Move移动格式 mrangeaddress作用 将指定单元的内容移动到被指定单元例 mds 00000010es 0000将数据段0000到0010的数据移动到附加段0000到0010 Search查找格式 srangelist作用 在指定范围内查找给定的数据例 scs 0000l30dd在代码段0000后的30个单元个内查找dd Input输入output输出输入 输出相对于CPU与端口 从CPU到端口是输出 从端口到CPU是输入 格式 inputport作用 取指定端口号的数据 对于不同的端口寄存器要遵循它的特性 例 I71显示71端口的数据格式 outputportbyte作用 向指定端口写入给定数据例 o7100向71端口写如00 Unassemble反汇编格式 u range 作用 反汇编给定范围内的数据例 u反汇编u00000020反汇编代码段0000到0020的数据 Q退出

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

当前位置:首页 > 中学教育 > 其它中学文档

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