返回列表 发帖

DEBUG指令的一些总结和调试方法

DEBUG指令的一些总结和调试方法




前几天又兄弟对debug很感兴趣,由于是学通信的,汇编学了一堆,所以挑几个有实用价值的贴出来
比如看看主板信息以防JS...了,看看LCD有没有坏点了,搞定寝室里别人机子的bios密码了,等等等等
  
首先如入一下门,debug都是从这些东东来的
1。 主要的命令及格式,这些命令是debug最基本的命令,如何灵活使用就看你自己的硬件知识了,不过我会举一些具体粒子的
  A(Assemble): 汇编语句 A[address]   
  C(Compare): 比较内存 C range address  
  D(Dump): 显示内存 D[address]或D[range]  
  E(Enter): 改变内存 E address[list]  
  F(Fill): 填充内存 F range list  
  G(Go): 执行程序 G[=address[address[address...]]  
  H(Hexarithmetic): 十六进制运算命令 H[address[drive|sector|sector]]  
  I(Input): 输入 I portaddress  
  L(Load): 装入内存 L[address[drive|sector|sector]]  
  M(Move): 传送内存 M range address  
  N(Name): 定义文件和参数 N[d:][path]filename[.ext]  
  O(Output): 输出字节 O portaddress byte  
  P(Proceed): 在下条指令前停止  P[=address][value]  
  Q(Quit): 结束DEBUG程序 Q  
  R(Hexarithmetic): 显示寄存器/标志位 R[registername]  
  S(Search): 捡索字符 S range list  
  T(Trace): 执行并显示(跟踪) T[=address][value]  
  U(Unassemble): 反汇编指令 U[address]或U[range]  
  W(Write): 把文件或数据写盘 W[address[drive|sector|sector]]  
   
  开始介绍一些具体应用,有些不光给出debug命令,还会列举其他方法
  2。 上次我写T40评测用的D命令,用来察看主板的生产日期或者版本与生产厂
D ffff:05 察看日起
D fe00:0e 察看版本
   
  3。 不知道bios密码怎么办?  
a debug法,清除bios密码
o 70 10
o 71 10
g
g
重启
不过这一招太狠读了,还有
b debug法二,前提是进入系统
o70 21  
o70 20  
p  
  
c 万能密码法,适用于较老的机型。对Award BIOS,试试下面的密码:AWARD--SR,j62,HLT,SER,
SKY_FOX,BIOSTAR,ALFAROME,lkwpeter,j256,AWARD?SW,LKWPETER,Syxz,aLLy,589589 ,589721,awkward,
COMCAT等。对AMI BIOS,试试下面的密码:AMI,BIOS,PASWORD,HEWITTRAND,AMI?SW,AMI--SW,
LKWPETER,A.M.I.等。
  
4。保存硬盘的引导扇区和文件分配表  
这是保存C盘的引导程序,其余的类推!
L 100 2 0 1 ;0代表A,1代表B,2代表C盘, 0就是0扇区。  
N c:Boot.com ;保存到  
R CX ;CX寄存器用来表示写文件的大小。
:200  
W  
Q  
5。恢复硬盘的引导扇区和文件分配表  
恢复C盘的引导扇区程序
n c:boot.com  
l 100  
r cx  
:200  
w 100 2 0 1 ;其中0为A盘,1为B盘,2为C盘。依此类推!  
q  
   
6。LCD亮点或暗点检查
用F填充命令
f b800:00 f9f 20 40  (40代表红)  
f b800:00 f9f 20 10  (10代表兰)
依此类推,还有20代表绿,30代表紫红,70代表灰白等
  
7。方便的调试程序。  
例如,将一段小写字符改为大写  
s ...  用DEBUG的“-S”功能检索到那个字符
e ...  E改变内存命令修改字符的ASCII码(小写改大写是-20(16进制),大写改小写反之)  
在例如,
如果是批量修改一个段地址下相临偏移地址的字符串,就用“-F”填充命令。
海例如,其实A指令就是一条编译指令
  
8。检查路由器配置及工作状态,在超级权限模式下  
debug 命令可以实时显示路由器的工作情况,缺省状态下,debug信息只能在与console端口连接的
终端上显示。当然最简单还是ping或者telnet了。
  
9。要显示扩展内存信息,可以键入以下命令:
xs
  
Debug 显示与以下类似的信息:
Handle 0000 has 0000 pages allocated
Handle 0001 has 0002 pages allocated
Physical page 00 = Frame segment C000
Physical page 01 = Frame segment C400
Physical page 02 = Frame segment C800
Physical page 03 = Frame segment CC00
2 of a total 80 EMS pages have been allocated
2 of a total FF EMS handles have been allocated
  
10。对指定的两个参数执行十六进制运算。
  
h value1 value2
  
这样说下去没头,也不讲什么操作数、伪操作什么的了,日常没什么用。到底如何去利用debug,真想弄明白的话,还是去看汇编把。


本文作者: microfox  收录时间: 2004-3-16 09:46
讨论连接: 吐血奉献,DEBUG指令的一些总结和调试方法

返回列表