Я пытаюсь загрузить корневой каталог раздела fat 16, используя функцию Int 13h ah = 42h! Насколько мне известно, все параметры установлены правильно. Вот код:`
mov byte[DAP.sz],0x10
mov byte[DAP.res],0
mov cx,word[TotalRootDirSecs]
mov word[DAP.count],cx
mov word[DAP.offset],0x0500
mov word[DAP.seg],0x0
mov eax,dword[IstRootDirSec]
add eax,dword[BPB_HiddSec]
mov dword[DAP.baseLo],eax
mov dword[DAP.baseHi],0x0
mov di,5
pusha
.loop:
dec di
cmp di,0
jz .failed
mov si,0x0
mov ds,si
mov si,DAP
mov dl,0x80
mov ah,0x42
int 0x13
jc .loop
popa
mov si,RootLoaded
call Print16
cli
hlt
.failed:
mov al,ah
add al,48
mov ah,0eh
int 0x10
popa
cli
hlt`
Код ошибки, возвращенный в ah, равен 1, что является неверным параметром (LBA вне диапазона), но я сбросил регистры, и все значения верны. Пожалуйста, кто-нибудь может сказать, где ошибка. Заранее спасибо.
IstRootDirSec
,BPB_HiddSec
иDAP
. - person ElderBug   schedule 06.05.2015