Probleme avec l interruption affichage de chaine

M0NTOYA Messages postés 3 Date d'inscription jeudi 6 mars 2003 Statut Membre Dernière intervention 6 mars 2003 - 6 mars 2003 à 11:31
PCBill Messages postés 48 Date d'inscription lundi 25 décembre 2006 Statut Membre Dernière intervention 29 septembre 2009 - 2 juin 2008 à 09:46
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

PCBill Messages postés 48 Date d'inscription lundi 25 décembre 2006 Statut Membre Dernière intervention 29 septembre 2009
1 juin 2008 à 20:19
Bonjour/Bonsoir ;

peux-tu nous dire quelles sont les lignes qui viennet juste après l'appelle à ta procédure ?
0
PCBill Messages postés 48 Date d'inscription lundi 25 décembre 2006 Statut Membre Dernière intervention 29 septembre 2009
2 juin 2008 à 09:46
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 !!!!
0
Rejoignez-nous