欢迎来到天天文库
浏览记录
ID:37674365
大小:94.00 KB
页数:7页
时间:2019-05-28
《实验1-2 DEBUG使用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验1:调试器DEBUG的使用 DEBUG程序是IBMPC的DOS操作系统提供的一个通用工具。它向汇编语言程序设计者和系统管理员提供一个可控制的调试环境,监视和管理被调试程序的执行。使用DEBUG可以直接深入到机器系统内部,读写中央处理机各寄存器和内存单元,并可以访问接口和外设的寄存器。DEBUG的具体功能如下:l 读写、比较存储单元内容;l 在存储器之间、存储器和磁盘之间传送数据和程序;l 把数据和字符串填入指定内存单元,并在指定范围内查找数据和字符串;l 指定程序起址或断点,执行或分段执行程序;l 显
2、示寄存器内容和内存单元内容;l 跟踪程序执行,显示处理器状态;l 汇编和反汇编程序。2.1DEBUG的进入和退出进入DEBUG 如果是调试某程序文件,其格式为:DEBUG<程序名>[<参数>]程序名可以是.COM为扩展名,也可以是以.EXE为扩展名。“<>”表示其中为一个完整的参数项,“[]”表示括号内项为可选项。 如果要在DEBUG下编程,直接键入DEBUG即可,例如:C>DEBUG-显示DEBUG提示符“-”,表明已进入DEBUG状态。 在“-”之后,可以发出DEBUG命令。本书约定以后所有DEBUG命
3、令都是在DEBUG下发出的。退出DEBUG 用DEBUG的Q命令,格式为:-Q返回操作系统。2.2程序汇编与反汇编命令汇编命令A与反汇编命令U是DEBUG下最常使用的命令。我们约定下面例题中蓝色字符由用户键入,黑色字符由计算机自动显示。汇编命令A格式:A[<程序起始地址>]功能:逐行汇编程序。主要用于小段程序的汇编和修改部分连续的目标代码。7说明:使用A命令汇编程序,一般不许使用标号和伪指令,但MS-DOS的DEBUG允许使用DB和DW这两条伪指令。A命令可用按Ctrl+C键退出。例2-1:-A1001141:0100M
4、OVDL,411141:0102MOVAH,21141:0104INT211141:0106INT201141:0108 ∧C-;即按CTR和C键退出汇编命令A反汇编命令U格式:U[<地址范围>]功能:对指定地址范围内的二进制代码进行反汇编,常用于分析目标代码意义。说明:<地址范围>项缺省时,反汇编起始地址由当前指令指针寄存器IP值决定。例2-2:例2-1程序反汇编如下:-U1001061141:0100B241MOVDL,411141:0102B402MOVAH,021141:0104CD21INT211141:0106C
5、D20INT20- 其中地址范围为100到106。2.3管理程序执行命令在DEBUG下有3种执行程序的方法:完整执行程序、分段执行程序和单步执行程序。较新版本的DEBUG还提供了子程序跳跃执行命令。执行程序命令G格式:G[=<起始地址>][<断点>…]功能:完整或分段执行程序。说明:如果G命令不带参数,则从头到尾执行程序;如果有断点,则执行到断点地址时暂停并显示当前各寄存器状态。其中断点最多允许设置10个。程序正常时显示:Programterminatednormally。 例2-3A>DEBUG-A127B:0100
6、MOVAX,5127B:0103 MOVBX,6127B:0106 ADDAX,BX127B:0108 INT20H127B:010A ^C-GProgramterminatednormally-单步执行命令T7格式:T[<=起始地址>][<跟踪条数>]功能:逐条跟踪执行程序指令。说明:每条指令执行后都将显示各寄存器当前值。例2-4:说明例2-3程序的单步执行:-TAX=0005BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=127BES=127BSS=127BCS=1
7、27BIP=0103NVUPEIPLNZNAPONC127B:0103BB0600MOVBX,0006-TAX=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 NVUPEIPLNZNAPONC127B:010601D8 ADDAX,BX -TAX=000B BX=0006 CX=0000 DX=000
8、0 SP=FFEE BP=0000 SI=0000 DI=0000 DS=127B ES=127B SS=127B CS=127B IP=0108 NVUPEIPLNZNAPONC127B:0108CD20 INT20
此文档下载收益归作者所有