проблема с int 13h. Хочу прочитать с флопа 2-й сектор и загрузить всё в 0000h:09000h, а потом прыгнуть туда.
Вот bootsect.asm:
org 07C00h
main:
cli
mov ax,cs
mov ds,ax
mov ss,ax
mov sp,main
sti
mov si,msg
L:
lodsb
test al,al
jz exit
mov ah,0Eh
int 10h
jmp L
mov ax,00h
mov es,ax
mov ch,00h
mov ah,02h
mov bx,09000h
mov al,01h
mov cl,02h
mov dl,00h
mov dh,00h
int 13h
mov si,msg_sl
L1:
lodsb
test al,al
jz exit
mov ah,0Eh
int 10h
jmp L1
jmp 09000h
exit:
ret
msg: db "Starting bootsect",0Dh,0Ah,0Dh,00h
msg_sl: db "Jumping",0Dh,0Ah,0Dh,00h
times 510-($-$$) db 0
db 055h, 0AAh
А вот code.asm:
code:
mov sp,code
mov si,msg_c
S:
lodsb
test al,al
jz halt
mov ah,0Eh
int 10h
jmp S
halt:
cli
hlt
msg_c: db "code loaded", 0Dh, 00h
По тому же принципу хочу из code загрузить чистый бинарник после code. Но проблема в том, что загружается bootsect, а jumping уже не пишется.
Форум —
Development