Prova così :
Ho notato che usi il servizio 9 per stampare il tab (che nn ha il termiatore di stringa)codice:messaggio db 'Hello world',13,10, '$' tab db ' ', 9, '$'
Cmq il modello che hai usato nn credo vada bene (prova con lo small)
Perchè non usi un bel loop ?