粤ICP备11076303号  广州青年志愿者协会医疗服务总队 www.gzyld.org.cn
加入医疗队
加入志愿者

位置:GZ医疗队公益纪实公益站长系统软件

Debug-PC之开山老祖(4)


来源:      作者:      点击:次      时间:2007-03-20

-R bx  
BX 0369  
:059F  
则把BX寄存器的内容修改为059F。  
·显示和修改标志位状态,命令格式为:  
-RF系统将响应,如:  
OV DN EI NG ZR AC PE CY-  
此时,如不修改其内容可按ENTER键,否则,可键入欲修改的内容,如:  
OV DN EI NG ZR AC PE CY-PONZDINV  
即可,可见键入的顺序可以是任意的。  
4)运行命令G,其格式为:  
-G[=address1][address2[address3…>  
其中,地址1指定了运行的起始地址,如不指定则从当前的CS:IP开始运行。后面的地址均为断点地址,当指令执行到断点时,就停止执行并显示当前所有寄存器及标志位的内容,和下一条将要执行的指令。  
5)跟踪命令T(Trace),有两种格式:  
·逐条指令跟踪  
-T [=address]  
从指定地址起执行一条指令后停下来,显示所有寄存器内容及标志位的值。如未指定地址则从当前的CS:IP开始执行。  
·多条指令跟踪  
-T [=address][value]  
从指定地址起执行n条指令后停下来,n由value指定。  
6)汇编命令A(Assemble),其格式为:  
-A[address]  
该命令允许键入汇编语言语句,并能把它们汇编成机器代码,相继地存放在从指定地址开始的存储区中。必须注意:DEBUG把键入的数字均看成十六进制数,所以如要键入十进制数,则其后应加以说明,如100D。  
7)反汇编命令U(Unassemble)有两种格式。  
·从指定地址开始,反汇编32个字节,其格式为:  
-U[address]  
例如:  
-u100  
18E4:0100 C70604023801 MOV WORD PTR[0204],0138  
18E4:0106 C70606020002 MOV WORD PTR[0206],0200  
18E4:010C C70606020202 MOV WORD PTR[0208],0202  
18E4:0112 BBO4O2 MOV BX,0204  
18E4:0115 E80200 CALL 011A  
18E4:0118 CD20 INT 20  
18E4:011A 50 PUSH AX  
18E4:011B 51 PUSH CX  
18E4:011C 56 PUSH SI  
18E4:011D 57 PUSH DI  
18E4:011E 8B37 MOV SI,[BX]  
如果地址被省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。  
·对指定范围内的存储单元进行反汇编,格式为:  
-U[range]  
例如:  
-u100 10c  
18E4:0100 C70604023801 MOV WORD PTR[0204],0138  
18E4:0106 C70606020002 MOV WORD PTR[0206],0200  
18E4:010C C70606020202 MOV WORD PTR[0208],0202  
或  
-u100 112    
18E4:0100 C70604023801 MOV WORD PTR[0204],0138  
18E4:0106 C70606020002 MOV WORD PTR[0206],0200  
18E4:010C C70606020202 MOV WORD PTR[0208],0202  

可见这两种格式是等效的。  
8)命名命令N(Name),其格式为:  
-N filespecs [filespecs]  
命令把两个文件标识符格式化在CS:5CH和CS:6CH的两个文件控制块中,以便在其后用L或W命令把文件装入存盘。filespecs的格式可以是:  
[d:][path] filename[.ext]  
例如,  
-N myprog  
-L  
-  
可把文件myprog装入存储器。  
9)装入命令(Load),有两种功能。  
·把磁盘上指定扇区范围的内容装入到存储器从指定地址开始的区域中。其格式为:  
-L[address[drive sector sector]  
·装入指定文件,其格式为:  
-L[address]  
此命令装入已在CS:5CH中格式化了文件控制块所指定的文件。如未指定地址,则装入CS:0100开始的存储区中。  
10)写命令W(Write),有两种功能。  
·把数据写入磁盘的指定扇区。其格式为:  
-W address drive sector sector  
·把数据写入指定的文件中。其格式为:  
-W[address]  
此命令把指定的存储区中的数据写入由CS:5CH处的文件控制块所指定的文件中。如未指定地址则数据从CS:0100开始。要写入文件的字节数应先放入BX和CX中。  
11)退出DEBUG命令Q(Quit),其格式为:  
-Q  
它退出DEBUG,返回DOS。本命令并无存盘功能,如需存盘应先使用W命令。    

问题:初学者问一个低级问题,执行debug-a后,如果有一行输入错误,如何更改这一行?  

回答:  
加入进行如下输入:  
D:\PWIN95\Desktop>debug  
-a  
2129:0100movax,200  
2129:0103movbx,200  
2129:0106movcx,200  
2129:0109  
此时,发现movbx,200一句错误,应为movbx,20,可以敲回车返回"-"状态,然后输入:  
-a103  
2129:0103movbx,20  
如果多或者少若干行,不必重新输入,可以用M命令移动后面的程序来去掉或者增加程序空间。  


新活动 回顶部
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片
最新评论 进入详细评论页>>