4

ハードディスクのパラメータを取得したい。ここで説明する手法を使用します。

  • これは、フロッピー ディスクの通常のパラメータを示すコードです。

    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(エラー) を与えています。どうすれば修正できますか?

4

2 に答える 2

5

エラーのAH場合、エラー コードが含まれている必要があります。それが何だった?

Ralf Brown の (優れた) 割り込みリストには、それらの詳細が記載されています。

 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、キャリーは、拡張が存在する場合、戻り時にクリアされます。

于 2010-06-16T13:10:08.420 に答える
0

一部のコンピューターでは ds および es レジスターが適切に保存されないため、これらは int-13 function-48 から戻ったときに復元する必要があります。また、バージョンに応じてバッファー サイズが 1A 1E または 42 であることを確認してください。

于 2010-08-10T02:02:07.333 に答える