i'm trying to write a boot sector that displays a small message on boot, but running the following on QEMU produces malformed text and any string with more than 5 characters doesn't show at all. here's the code i assembled with NASM to a raw .bin file
[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
 
    