[問題] 用組語寫讀取硬碟資訊

看板ASM (組合語言)作者 (qq)時間16年前 (2008/11/19 21:33), 編輯推噓1(109)
留言10則, 4人參與, 最新討論串1/1
最近想寫個可以在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

11/19 21:37, , 1F
剛忘了打 1f7h是我在網路上看到的硬碟通道,不曉得是否正確?
11/19 21:37, 1F

11/20 00:39, , 2F
IDE 0:0 170~17F , 你沒有設磁碟 XD 還有看你用 PATA or SATA
11/20 00:39, 2F

11/20 00:40, , 3F
還有你要在可以讓你用 in,out 指令的環境下 ...
11/20 00:40, 3F

11/20 00:41, , 4F
翻翻 Spec 吧,這東西因該板上滿多人玩過了 >///<
11/20 00:41, 4F

11/23 11:37, , 5F
看你拿不拿得到SE.EXE或是RU.EXE 它就能下ATA command去讀
11/23 11:37, 5F

11/23 11:38, , 6F
而且你要注意你HDD是接在哪個channel 不一定是1F7h的port
11/23 11:38, 6F

11/23 22:02, , 7F
謝謝大家,目前IDE的硬碟有成功囉,但是對是 PCI SATA
11/23 22:02, 7F

11/23 22:03, , 8F
卻不行,他好像不是直接用PORT就可以了??不知道大家有沒有
11/23 22:03, 8F

11/23 22:04, , 9F
推薦的解決方案呢?
11/23 22:04, 9F

01/09 07:07, , 10F
用 int 25h , int 26h 也不錯 不用自己下port
01/09 07:07, 10F
文章代碼(AID): #1991MlJS (ASM)
文章代碼(AID): #1991MlJS (ASM)