1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| org 0x0100 ;Adresse de debut .COM
;Ecriture de la chaine hello dans la console
mov si,hello ;Adresse de la chaine a afficher dans le registre SI
xor bh,bh ;BH=0, stocke la page d'affichage
mov ah,0x03
int 0x10 ;Appel de l'interruption BIOS donnant la position du curseur
;stockee dans DX
mov cx,1 ;Nombre de fois ou l'on va afficher un caractere.
affiche_suivant:
mov al,[si] ;On place le caractere dans AL
or al,al ;On compare AL a 0 pour savoir si on doit arreter
jz fin
cmp al,13
je retour_chariot
positionne_curseur:
mov ah,0x02 ;On positionne le curseur
int 0x10
mov ah,0x0A ;On affiche le caractere courrant CX fois
int 0x10
inc dl ;Om passe a la colonne suivante
index_char:
inc si ;On passe au caractere suivant
jmp affiche_suivant
fin:
ret
nouvelle_ligne:
mov ah,02h
mov dl,10
int 21h
mov dl,13
mov ah,02h
int 21h
xor dl,dl
jmp index_char
retour_chariot:
inc si
mov al,[si]
cmp al,10
je nouvelle_ligne
jmp affiche_suivant
hello: db 'Bonjour papi.',13,10,'OLA',0 |
Partager