Я пытаюсь написать загрузочный сектор, который отображает маленькое сообщение при загрузке, но выполнение следующего в QEMU приводит к искаженному тексту, и любая строка, содержащая более 5 символов, вообще не отображается. вот код, который я собрал с NASM в необработанный .bin файл
[bits 16]
[org 0x7c00]
start:
xor ax,ax
mov ds,ax
mov es,ax
mov bx,0x8000
mov ax,0x13
int 0x10
mov ah,02
int 0x10
mov ah,0x02
mov bh,0x00
mov dh,0x12
mov dl,0x03
int 0x10
mov si , welcome
welcome db "hello",13,0
call RainbowPrint
RainbowPrint:
mov bl,1
mov ah, 0x0E
.repeat_next_char:
lodsb
cmp al, 0
je .done_print
add bl,6
int 0x10
jmp .repeat_next_char
.done_print:
ret
times (510 - ($ - $$)) db 0x00
dw 0xAA55
РЕДАКТИРОВАТЬ: вот изображение, показывающее программу, запущенную в qemu