作者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