Stampare stringhe in assembly non funziona

di il
3 risposte

Stampare stringhe in assembly non funziona

CIao a tutti sono nuovo del forum.
Il mio codice:
[org 0x7c00]
mov bx, HELLO_MSG
call print_string
mov bx, GOODBYE_MSG
call print_string
jmp $



%include "print_string.asm"

HELLO_MSG:
db 'Booting OS', 0
GOODBYE_MSG:
db 'Done', 0
times 510-($-$$) db 0
dw 0xaa55
print_string:
mov ah, 0x0e
int 0x10
ret
solo che questo stampa due UU.
Qualcuno può suggerirmi come scrivere una funzione che stampi stringhe? Grazie

3 Risposte

  • Re: Stampare stringhe in assembly non funziona

    La funzione 0x0e visualizza un solo carattere. La stringa viene visualizzata dalla funzione 0x13. Se vuoi scrivere un tuo OS dovresti studiarla e conoscerla.

    Oppure costruisci una tua funzione che usi un ciclo per visualizzare carattere per carattere.
  • Re: Stampare stringhe in assembly non funziona

    Grazie per la risposta, quindi se ho capito bene dovrei fare
    mov ah, 0x13
    mov bx, HELLO_MSG
    int 0x10
    Oppure
    mov ah, 0x0e
    mov al, HELLO_MSG
    int 0x13
    Ora sono da cellulare quindi non posso provarlo, ma se mi confermi che è giusto appena ho il PC sotto mano lo provo. Grazie e buona domenica
  • Re: Stampare stringhe in assembly non funziona

    No ... hai capito male... è

    mov ah, 0x13
    int 0x10

    ma cosa passare alla funzione nei registri prima ti avevo detto di studiarlo dalla documentazione...
Devi accedere o registrarti per scrivere nel forum
3 risposte