验1-2 DEBUG使用.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验1-2DEBUG使用

实验1: 调试器DEBUG的使用 ??? DEBUG程序是IBM PC 的DOS操作系统提供的一个通用工具。它向汇编语言程序设计者和系统管理员提供一个可控制的调试环境,监视和管理被调试程序的执行。使用DEBUG可以直接深入到机器系统内部,读写中央处理机各寄存器和内存单元,并可以访问接口和外设的寄存器。DEBUG的具体功能如下: ??? 读写、比较存储单元内容; ??? 在存储器之间、存储器和磁盘之间传送数据和程序; ????把数据和字符串填入指定内存单元,并在指定范围内查找数据和字符串; ????指定程序起址或断点,执行或分段执行程序; ????显示寄存器内容和内存单元内容; ????跟踪程序执行,显示处理器状态; ??? 汇编和反汇编程序。 2.1 DEBUG的进入和退出 进入DEBUG ??? 如果是调试某程序文件,其格式为: DEBUG 程序名[参数] 程序名可以是.COM为扩展名,也可以是以.EXE为扩展名。“ ”表示其中为一个完整的参数项,“[ ]”表示括号内项为可选项。 ??? 如果要在DEBUG下编程,直接键入DEBUG即可,例如: C DEBUG - 显示DEBUG提示符“-”,表明已进入DEBUG状态。 ??? 在“-”之后,可以发出DEBUG 命令。本书约定以后所有DEBUG 命令都是在DEBUG下发出的。 退出DEBUG ??? 用DEBUG的Q命令,格式为: -Q 返回操作系统。 2.2 程序汇编与反汇编命令 汇编命令A与反汇编命令U是DEBUG下最常使用的命令。我们约定下面例题中蓝色字符由用户键入,黑色字符由计算机自动显示。 汇编命令A 格式:A[程序起始地址] 功能:逐行汇编程序。主要用于小段程序的汇编和修改部分连续的目标代码。 说明:使用A命令汇编程序,一般不许使用标号和伪指令,但MS-DOS的DEBUG允许使用DB和DW这两条伪指令。 A命令可用按Ctrl+C键退出。 例2-1: -A 100 1141:0100 MOV DL,41 1141:0102 MOV AH,2 1141:0104 INT 21 1141:0106 INT 20 1141:0108? ∧C ;即按CTR和C键退出汇编命令A 反汇编命令U 格式:U[地址范围] 功能:对指定地址范围内的二进制代码进行反汇编,常用于分析目标代码意义。 说明:地址范围项缺省时,反汇编起始地址由当前指令指针寄存器IP值决定。 例2-2:例2-1程序反汇编如下: -U 100 106 1141:0100 B241 MOV DL,41 1141:0102 B402 MOV AH,02 1141:0104 CD21 INT 21 1141:0106 CD20 INT 20 - ??? 其中地址范围为100到106。 2.3 管理程序执行命令 在DEBUG下有3种执行程序的方法:完整执行程序 、分段执行程序和单步执行程序。较新版本的DEBUG还提供了子程序跳跃执行命令。 执行程序命令G 格式:G[=起始地址][断点…] 功能:完整或分段执行程序。 说明:如果G命令不带参数,则从头到尾执行程序;如果有断点,则执行到断点地址时暂停并显示当前各寄存器状态。其中断点最多允许设置10个。程序正常时显示: Program terminated normally。   2-3 ADEBUG -A 127B:0100? MOV AX,5 127B:0103? MOV BX,6 127B:0106? ADD AX,BX 127B:0108? INT 20H 127B:010A? ^C -G Program terminated normally - 单步执行命令T 格式:T[=起始地址][跟踪条数] 功能:逐条跟踪执行程序指令。 说明:每条指令执行后都将显示各寄存器当前值。 例2-4:说明例2-3程序的单步执行: -T AX=0005 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=127B ES=127B SS=127B CS=127B IP=0103 NV UP EI PL NZ NA PO NC 127B:0103 BB0600 MOV BX,0006 -T AX=0005? BX=0006? CX=0000? DX=0000? SP=FFEE? BP=0000? SI=0000? DI=0000? DS=127B? ES=127B? SS=127B? CS=127B? IP=0106?

文档评论(0)

rovend + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档