我想获取硬盘的参数。使用描述here的技术。
这是显示软盘正常参数的代码:
mov dl,00h
mov ah,08h
int 13h
这是代码,显示硬盘的无效参数(可能是我的硬盘空间很大(LBA)):
mov dl,80h
mov ah,08h
int 13h
我写了这段代码:
mov dl,80h
mov ah,48h
int 13h
代码给出cf = 1(错误)。我如何解决它?
答案 0 :(得分:5)
如果出错,AH
应包含错误代码。它是什么?
Ralf Brown's (excellent) interrupt list详细说明了他们:
00h successful completion
01h invalid function in AH or invalid parameter
02h address mark not found
03h disk write-protected
04h sector not found/read error
05h reset failed (hard disk)
05h data did not verify correctly (TI Professional PC)
06h disk changed (floppy)
07h drive parameter activity failed (hard disk)
08h DMA overrun
09h data boundary error (attempted DMA across 64K boundary or >80h sectors)
0Ah bad sector detected (hard disk)
0Bh bad track detected (hard disk)
0Ch unsupported track or invalid media
0Dh invalid number of sectors on format (PS/2 hard disk)
0Eh control data address mark detected (hard disk)
0Fh DMA arbitration level out of range (hard disk)
10h uncorrectable CRC or ECC error on read
11h data ECC corrected (hard disk)
20h controller failure
31h no media in drive (IBM/MS INT 13 extensions)
32h incorrect drive type stored in CMOS (Compaq)
40h seek failed
80h timeout (not ready)
AAh drive not ready (hard disk)
B0h volume not locked in drive (INT 13 extensions)
B1h volume locked in drive (INT 13 extensions)
B2h volume not removable (INT 13 extensions)
B3h volume in use (INT 13 extensions)
B4h lock count exceeded (INT 13 extensions)
B5h valid eject request failed (INT 13 extensions)
B6h volume present but read protected (INT 13 extensions)
BBh undefined error (hard disk)
CCh write fault (hard disk)
E0h status register error (hard disk)
FFh sense operation failed (hard disk)
您也没有指定DS:SI
设置为重新获取信息的内容。这是否设置正确?
来自你的评论:
01h AH中的无效功能或参数无效。
检查您的BIOS是否有INT13扩展。 AH = 41h,DL = 80h(第一次驱动),BX = 55AAh,INT13,如果有扩展,则返回时将进行清除。
答案 1 :(得分:0)
某些计算机无法正确保存ds和es寄存器,因此从int-13函数-48返回时应恢复这些寄存器,并根据版本检查缓冲区大小为1A 1E或42。