作者swhpp (qq)
看板ASM
標題[問題] 用組語寫讀取硬碟資訊
時間Wed Nov 19 21:33:34 2008
最近想寫個可以在DOS下讀取HDD 資訊的程式
比如像牌子,容量,和版本之類的東西
其實在網路上有找到一些相似的,可是卻沒法用才想自己寫
我是用
mov dx, 1f7h
mov ax, 0ech
out dx, ax
先丟讀info的commond
然後再用in ax, dx
把資訊讀回來
但是因為它丟回來的資是255個word
所以我有用個loop
cli
mov cx, 10
@@:
in ax, dx
IODELAY
loop @b
in ax, dx
;照理說這裡應該會是我想要的第10個word才對吧?
但是不知道是不是我下面的print有問題
他都會印一大堆的亂碼出來QQ
以下是我的print
mov dx, ax
mov al, dh
lea di, f04_d
call hex2ascii ;這是hex轉ascii的副程式
mov al ,dl
lea di, f03_d
call hex2ascii
mov ah, 09h
lea dx, f03_d
int 21h
mov ah, 09h
lea dx, f04_d
int 21h
不知道這樣有沒有錯,或者我這邊in進來的info不能這樣印呢?
或者各位大大有更好的寫法呢?
麻煩各位大大幫幫我謝謝^^
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.166.132.232
1F:→ swhpp:剛忘了打 1f7h是我在網路上看到的硬碟通道,不曉得是否正確? 11/19 21:37
2F:推 zha0:IDE 0:0 170~17F , 你沒有設磁碟 XD 還有看你用 PATA or SATA 11/20 00:39
3F:→ zha0:還有你要在可以讓你用 in,out 指令的環境下 ... 11/20 00:40
4F:→ zha0:翻翻 Spec 吧,這東西因該板上滿多人玩過了 >///< 11/20 00:41
5F:→ Tankan:看你拿不拿得到SE.EXE或是RU.EXE 它就能下ATA command去讀 11/23 11:37
6F:→ Tankan:而且你要注意你HDD是接在哪個channel 不一定是1F7h的port 11/23 11:38
7F:→ swhpp:謝謝大家,目前IDE的硬碟有成功囉,但是對是 PCI SATA 11/23 22:02
8F:→ swhpp:卻不行,他好像不是直接用PORT就可以了??不知道大家有沒有 11/23 22:03
9F:→ swhpp:推薦的解決方案呢? 11/23 22:04
10F:→ zhim:用 int 25h , int 26h 也不錯 不用自己下port 01/09 07:07