Probleme avec l interruption affichage de chaine

Signaler
Messages postés
3
Date d'inscription
jeudi 6 mars 2003
Statut
Membre
Dernière intervention
6 mars 2003
-
Messages postés
48
Date d'inscription
lundi 25 décembre 2006
Statut
Membre
Dernière intervention
29 septembre 2009
-
bon voila mon probleme ,qd j utilse cette procedure(presentation) pour afficher une chaine de caractere

presentation PROC
PUSHA
MOV AH,09h
INT 21h
POPA
presentation ENDP

et que je l utilse comme ca ds mon code

mov dx,offset entete
call presentation

l affichage est correcte mais le probleme est que le programme attend que l on enfonce une touche du clavier . .. comme si j avais utilisé l interruption ( mov al,00h int 16h) alors que c pas le cas !

et si maintenant j utilise les mm ligne de code ds le main (sans utilise la procedure evidement )

MOV AH,09h
MOV DX,offset entete
INT 21h

ben la l interuption se comporte correctement !
alors je comprends vraiment pas pourkoi ca fonctionne differement qd j utilise la procedure . Est ce que quelqu un aurait une explication ?

2 réponses

Messages postés
48
Date d'inscription
lundi 25 décembre 2006
Statut
Membre
Dernière intervention
29 septembre 2009

Bonjour/Bonsoir ;

peux-tu nous dire quelles sont les lignes qui viennet juste après l'appelle à ta procédure ?
Messages postés
48
Date d'inscription
lundi 25 décembre 2006
Statut
Membre
Dernière intervention
29 septembre 2009

J'ai fait :

.model small
.stack
.data
entete DB 'Bonjour $'
.code
presentation PROC
PUSH AX
mov ah,09
int 21h
POP AX
RET
presentation ENDP

main PROC
mov ax,@data
mov ds, ax

mov dx, offset entete
call presentation

mov ax, 04c00h
int 21h

main ENDP
END main

et puis, j'ai refait encore  le même code sans le call pour afficher entete, et là j'ai eu 2 surprises moi même !!!!