Пока что у вас неверно: -)
AH
должно быть 3, а не 2 (2 для чтения). CL
тольковосемь битов, поэтому вряд ли будет удерживать это большое значение honkin '. - Вам необходимо установить
AH
, AL
, CH
, CL
, DH
, DL
и ES:BX
в соответствии со следующей таблицей:
AH 03h
AL Number of sectors to write
CH Track number
CL Sector number
DH Head number
DL Drive number
ES:BX Buffer to write
И, если вам когда-нибудь понадобится информация о прерываниях, вам следует поискать «Ральф Браун» в Google.Этот парень создал и поддерживал окончательный список прерываний еще в те дни, когда мы были изолированы от таких вещей.Смотри, например. здесь .
Ваши конкретные потребности могут быть удовлетворены с здесь .
Образец, хотя и не протестированный и написанный в реальном режиме, будет чем-то похожимследующие строки:
mov ax, 0301h ; cmd 3 (write sector), 1 sector
mov cx, 0001h ; track 0, sector 1
mov dx, 0000h ; head 0, drive 0
mov es, segment buff ; segment and offset of buffer
mov bx, offset buff
int 13h ; make the call
jc errp ; detect error
ret
errp: ; process error here
ret
buff: db 0(256) ; buffer to write