小華的部落格: 老程式也有它的好處

搜尋此網誌

星期三, 1月 21, 2009

老程式也有它的好處

大家都知道debug.com的用法,不過他還有一個應用的方式是我經常使用的!
剛好前陣子公司同事也有分享這個用法,所以就順便把他在做個簡單的介紹。

老程式Debug.com 有支援輸入/輸出導向,也就是以前DOS下的 ">" 跟"<" 符號所做的事情, 而他的用法很簡單,你只要在一個文字檔中先寫好你要做的事情,然後導入到Debug.com中 就可以了,而Debug.com就會依照你的文字檔的動作去做事情! 例如原本你使用debug.com時你做了下面的動作 -d
-q

那麼你就可以寫成一個Test.txt,然後裡面的內容是:
d
q

接著進入DOS Cmd prompt ,導入這個文字檔給debug.com 例如:
C:\> debug < test.txt

這樣子debug就會自動幫你執行d指令,還有q 離開debug.com.

而下面是一個Dump PIRQ的批次檔,我會自己去F Segment內找到'$PIR' 的位址,然後透過D指令去Dump 這個記憶體,接著把Dump的內容寫到一個檔案中:

@ECHO OFF
REM ============= Find PIRQ ===================
ECHO. s f000:0 ffff '$PIR' > FindPIRQ.txt
ECHO. q >> FindPIRQ.txt
debug <> PIRQAddr.txt

REM ============= Set variable ===================
FOR /F %%A in ('FINDSTR /C:"F000" PIRQAddr.txt') do SET FSEG=%%A

REM ============= Dump PIRQ ===================
ECHO. d %FSEG% > DumpPIRQ.txt
ECHO. d >> DumpPIRQ.txt
ECHO. d >> DumpPIRQ.txt
ECHO. d >> DumpPIRQ.txt
ECHO. d >> DumpPIRQ.txt
ECHO. q >> DumpPIRQ.txt

debug <> Pirq.txt

ECHO.
ECHO. Output: PIRQ.txt
ECHO.

DEL FindPIRQ.txt
DEL PIRQAddr.txt
DEL DumpPIRQ.txt
pause


底下是我產生的文字檔內的內容:
- d F000:DE80

F000:DE80 24 50 49 52 00 01 60 01-FF FF 00 00 86 80 2E 12 $PIR..`.........
F000:DE90 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
F000:DEA0 00 00 00 F8 DE 00 F8 DE-00 F8 DE 00 F8 DE 00 00 ................
F000:DEB0 00 38 60 E0 1C 00 F8 DE-00 F8 DE 00 F8 DE 00 00 .8`.............
F000:DEC0 00 08 60 E0 1C 00 F8 DE-00 F8 DE 00 F8 DE 00 00 ..`.............

8 則留言:

匿名 提到...

你好,
謝謝你的分享
想請問一個問題
我試過後面要用debug輸出檔案都會出現error
可否幫忙解惑一下
thank!

ex:
debug < 1.txt

1.txt:
d >> 2.txt
q

Harrison Hsieh 提到...

這個方式其實就是模擬你在debug.com按了哪些按鍵,所以我的範例內只有在debug.com內按了一下d 然後按enter ,接著按q按enter,所以你在1.txt中只要輸入d按enter ,然後q按enter.

所以1.txt內容應該如下:
d
q

然後你在導入到debug.com就可以了
而如果你在debug.com內輸入 d >> 2.txt 一定是不合法的,因為這不是debug.com的指令.

ex1合法:
-d
-q

ex2不合法:
-d >> 2.txt
-q

這樣子應該可以比較清楚用法:)

荣飞 提到...

您好,小华。
本人是一名初学者。有些问题需要请教您。
EC上有四根引脚功能不清楚,能否指点?
查看该EC电路图,有四根外部引脚(分别为FAB_REV_ID0,FAB_REV_ID1,FAB_REV_ID2,FAB_REV_ID3)连接到EC芯片的4根GPIO上。本人对这些引脚的功能不清楚,有劳高手给与指点。

匿名 提到...

hello, XiaoHua,
I am also a bios engineer,I didn't find your msn,Could you add my : xianiannian@hotmail.com

匿名 提到...

你好:
我是一名BIOS爱好者,我有一个问题
请教一下。
在检查DIMM上的内存条时,是否可通过
SMBus总线,读取SPD信息来判断有无。另外SMBus中command code为什么没有给出,
真是困惑。

探索者 提到...

你好看到你提到操作SPI FLASH后,想问个问题呢,我现在是设置ICH10 的OPMENU里设置咯访问FLASH的操作码,当然OPTYPE也对应设置,在OPERA中放入咯使能写操作码,然后就是设置SSFC—Software Sequencing Flash Control Register来控制指令发

当我在使用块擦除FLASH时只能擦BLOCK 0 其他BLOCK都檫不成功,但用FLASH的全擦指令是能把整个FLASH檫掉咯

还有写指令只能写BLOCK的前面一部分,后面部分写不成功



是我考虑的ICH里的寄存器里少设置咯吗,还是什么原因出现这种情况的如果你感觉不方便在这里回答,麻烦给我发个EMAIL:
binghuo70@126.com麻烦大侠咯

牛仔 提到...

华哥:我这边有个问题,公司主板采用AT电源,现在要求ACPI模式下关机时能像APM模式下关机那样提示“您可以安全地关机了”!可否帮忙解惑一下!

depp 提到...

可憐的華哥,一下子被問這麼多問題,估計頭都大了...