BIOS int 10h imprimiendo basura en QEMU

Tengo un problema al escribir un programa de ensamblaje en modo real x86 que se ejecuta como gestor de arranque enQEMU. Estoy tratando de imprimir texto a través de la interrupción del BIOS 0x10. Mi código es:

print:
    pusha
.loop:
    mov AL, [SI]
    cmp AL, 0
    je .end
    call printChar
    inc SI
    jmp .loop
.end:
    popa
    ret

printChar:
    pusha
    mov AH, 0x0E
    mov BH, 0
    mov BL, 0x0F
    int 0x10
    popa
    ret

Estoy usando[ORG 0x7c00] como punto de origen. Probé elprintChar etiqueta y llamándolo con alguna letra enAlabama y funciona bien Cuando intento cargar una dirección de memoria en un mensaje como este:

loadMsg      db "Loading",0
mov SI, loadMessage
call print

Me sale basura como 'U' como salida enQEMU emulador Ayer escribí un código realmente similar a este y no tengo ningún problema. ¿Qué está causando mi problema y cómo se puede solucionar?

Respuestas a la pregunta(2)

Su respuesta a la pregunta