Имеется код:
boot.asm:
use16
org 7c00h
start:
cli
cld
mov ax, 0
mov ds, ax
mov ss, ax
mov es, ax
mov sp, start
mov [disk_load], dl
sti
mov si,message
call writemess
func_load:
mov dl, [disk_load]
mov bx,8000h
mov dh,0
mov ch, 0
mov cl,2
mov al,1
int 13h
jmp 0000:8000h
writemess:
mov ah,0eh
puts_loop:
lodsb
test al,al
jz puts_loop_exit
int 10h
jmp puts_loop
puts_loop_exit:
ret
disk_load db 0
message db 'Boot loaded.'
core.asm:
use16
org 8000h
start:
mov al,00h
mov ah,05h
int 10h
mov ah,00h
mov al,03h
int 10h
mov si,ready
call writemess
main:
jmp $
writemess:
mov ah,0eh
puts_loop:
lodsb
test al,al
jz puts_loop_exit
int 10h
jmp puts_loop
puts_loop_exit:
ret
ready db 'Core ready'
По сути код и несложный, но возможно в силу моей неопытности мог допустить незаметную для меня ошибку. Оба файла были скомпилированы и засунуты в нужные сектора загрузочного носителя программой dmde. После запуска высвечивается надпись выводимая первичным загрузчиком, однако далее к очистке экрана дело не идет.