当前位置:站长之家学习教程软件教程应用软件 → 文章内容

遗忘的瑞士军刀 Debug应用实例秀

减小字体 增大字体 作者:佚名  来源:不详  发布时间:2006-7-24 15:48:52

  豪华绚丽的Windows让人们把DOS抛到遥远的记忆角落。然而,真正有价值的东西不会轻易退出历史的舞台,Debug就是这样的经典作品之一。从古老的DOS到现今的Windows XP,Debug一直紧紧跟随着微软的操作系统,静静躺在系统文件夹里。也许你平时对它不闻不问,但要想成为人人羡慕的系统高手,我们就得唤醒这个沉睡已久的命令行工具了,通过阅读本文对它的研究,相信你会同笔者一样的感觉到:姜,还是老的辣!

  一、寻根溯源:世界第一只计算机BUG和Debug

  霍德华·艾肯在哈佛大学攻读物理学博士学位时,开始梦想制作一台计算机帮他解决数学难题,工作后,他找到IBM公司为其投资100万美元研制计算机,第一台成品艾肯把它取名为:马克Ⅰ号,又叫“自动序列受控计算机”,从这时起IBM公司由生产制表机、肉铺磅秤、咖啡碾磨机等乱七八糟玩意的行业,正式跨进了计算机“领地”。

  1945年9月9日,为马克II号编制计算程序的女数学家格雷斯·霍波在调试程序时出现了故障,拆开继电器后,发现有只飞蛾被夹扁在触点中间,从而“卡”住了机器的运行。于是霍波把这只飞蛾粘在了计算机的工作日志中,并恢谐地把程序故障统称为“臭虫”(bug),自此以后,只要这台计算机一停止运转(那时候是经常的事),同事们就会开玩笑地对霍德华·艾肯说,我们正在“Debug”(除虫)呢!后来“bug”成为计算机领域的专业行话,如DOS系统中的调试程序,程序名称就叫Debug。

  目前那只飞蛾还保存在美国史密森尼博物院的美国历史国家博物馆中,如果你想一睹它的芳容,那么就到http://www.history.navy.mil/photos/images/h96000/h96566k.jpg看看吧。

  1981年,第一个PC DOS(即DOS 1.00)面世时就已经带上了Debug.com。不过,到目前为止,Debug一直没有大的变动——当然,这是指Debug提供给用户的功能,Debug本身代码、内部运行机制必然随着操作系统的变化而不断改变。然而,无论是Windows 98、2000还是XP,Debug的操作方式与纯DOS环境下基本一样。

遗忘的瑞士军刀 Debug应用实例秀

  

  二、初学乍练:短短几行命令学用Debug

  Debug.exe文件位于Windows\system32目录(Windows XP)或Windows\command目录(Windows 9x)下。基本使用方法如下:

  Step 1:点击“开始→运行”,输入“CMD”(Windows 2000/XP)或“Command”(Windows 9x)打开命令提示符窗口。

  Step 2:输入“Debug”并回车,出现提示符“-”,现在你已经开启了神秘的Debug世界了。

  小提示

  执行“?”命令可以参看Debug主要命令及参数。  

  Step 3:输入“D FE00:0”,回车后可以看到结果(见图1),这个就是主板BIOS的厂商信息。接着再输入“D FFFF:5 L 8”,回车后,主板的BIOS版本日期也出来了。


 

  

  Step 4:现在再输入“Q”命令,回车后就退出了Debug程序。

  小提示

  ★要想精通Debug的应用,除了解Debug命令相关参数外,最好对汇编语言的基本知识要有所了解,可以参考相关资料。比如:http://wlbookwl.myrice.com/jck/1026Debug.htm。

  ★将http://yanexp.html.533.net/dprogram.htm中提供的这段Debug代码复制到Debug的“-”命令提示符下后回车,体验一下高手的Debug杰作(一段3D演示,且带音乐)!

上一页  [1] [2] [3] [4] [5] [6] 下一页  

  三、继续深入:Debug经典实例秀

  在操作以下实例之前,提醒您要注意操作安全,因为Debug命令有一定风险,如果输入错误,有可能对系统造成一定破坏,这点请您一定注意。  

  实例1:查看你的显卡信息

  输入“D C000:0090”命令并回车,这时右侧部分可以看到系统中显卡的显存、生产厂商等信息。

  实例2:制作BIOS密码破解器

  忘记BIOS密码,一般都采用放电法来清空密码,但这对普通用户有一定难度,并且还得开机箱。其实利用Debug的0命令则简单得多!请在“-”后输入以下命令:

  o 70 19

  o 71 15

  q

  重启电脑,系统提示CMOS校验和出错,并要求重新进入BIOS设置CMOS。

  小提示:70和71是CMOS的两个端口,我们可以在它们的后面随意写入一些错误数据(如19、16、17等),就会清空CMOS里所有设置,如果不见效不妨多用几个数据试试。   

  如果觉得每次输入Debug命令太麻烦,可以用下面的方法把命令存成一个COM文件,需要解除密码时只要运行一下就行了。请在Debug中命令提示符“-”后输入以下命令:

  A 100

  MOV DX,70

  MOV AL,10

  OUT DX,AL

  MOV DX,71

  MOV AL,01

  OUT DX,AL(这里要两次回车,接着会出现“-”提示符,然后再输入下面的命令)

  R CX(回车后会出现“CX 0000”,然后再次按回车)

  0C

  N pass.COM

  W

  Q

  这样就会在Debug当前目录下生成pass.com,是一个清除BIOS口令设置的程序,只要在DOS提示符下键入“pass”,然后按回车即可。经我们测试,其实在Windows下面运行也可以成功。知识不太稳定,有时会重新启动计算机。

上一页  [1] [2] [3] [4] [5] [6] 下一页  

  实例3:检测LCD显示器的坏点

  购买LCD显示器最忌有亮点或暗点,我们可以借助相关的检测软件来辅助查看,但在配电脑时,老板常常不让我们装软件,其实利用Debug中的F命令就可以看得清清楚楚!

  为了检测LCD屏幕是否存在坏点,可以将整个屏幕填充为红、绿、蓝、白等纯色,以便检查。下面给出几个常用的显示屏检测F命令(Debug窗口一般较小,按Alt+Enter将它放大到整个屏幕):

  F B800:00 F9F 20 70 全屏白色

  F B800:00 F9F 20 40 全屏红色

  F B800:00 F9F 20 20 全屏绿色

  F B800:00 F9F 20 10 全屏蓝色

  F B800:00 F9F C5 07 C4 07 全屏白色十字网格

  F B800:00 F9F C5 04 C4 04 全屏红色十字网格

  F B800:00 F9F C5 02 C4 02 全屏绿色十字网格

  F B800:00 F9F C5 01 C4 01 全屏蓝色十字网格  

  实例4:用Debug恢复Windows 98启动

  在同时装有Windows 98和Windows 2000的电脑上,有时在Windows 98下整理C盘的磁盘碎片后(假设Windows 98装在C盘),下次很有可能启动不了Windows 98。这时必须重新生成BOOTSECT.DOS(此文件是用来引导Windows 98的),Windows 98才可以重新引导。可以用Debug生成BOOTSECT.DOS文件,先用软盘启动到DOS状态:

  C:>Debug

  L 100 2 0 1

  N BOOTSECT (BOOTSECT表示Windows 98引导记录的文件名)

  RCX

  CX 0000

  200

  W

  Q

  现在将C:\BOOTSECT改名为BOOTSECT.DOS,覆盖原来的BOOTSECT.DOS即可。

  

[1] [2]  下一页