我想獲取硬盤的參數。使用描述的技術here。中斷№13(ah = 48) - 不能正常工作
這是代碼顯示軟盤的正常參數:
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(錯誤)。我如何解決它?
我想獲取硬盤的參數。使用描述的技術here。中斷№13(ah = 48) - 不能正常工作
這是代碼顯示軟盤的正常參數:
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(錯誤)。我如何解決它?
出錯時,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
設置爲以recive的信息。這個設置是否正確?
從您的評論:
01H無效功能在AH或無效的參數。
檢查INT13擴展是否可用於您的BIOS。 AH = 41h,DL = 80h(第一個驅動器),BX = 55AAh,INT13,進位將在返回時清除。
某些計算機不能正確保存您的ds和es寄存器,因此應在從int-13函數返回時恢復這些函數-48還根據版本檢查緩衝區大小爲1A 1E或42。
01h AH或無效參數中的函數無效。 我不做什麼? – GLeBaTi 2010-06-16 13:25:33
您的BIOS是否支持擴展? Int13/Ah = 41應該能夠告訴你。 – paxdiablo 2010-06-16 13:30:02
@paxdiablo,請問您可以添加一個鏈接到Ralf Brown's(很好,我確定!)中斷列表詳細信息,讓人們知道您的來源? – Oddthinking 2010-06-16 13:31:45