实验1-2 DEBUG使用.docVIP

  • 14
  • 0
  • 约6.71千字
  • 约 7页
  • 2017-05-12 发布于河南
  • 举报
实验1-2 DEBUG使用

实验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?

文档评论(0)

1亿VIP精品文档

相关文档