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?