Saisie et affichage de caractères

shepherd1988 Messages postés 3 Date d'inscription jeudi 13 mars 2008 Statut Membre Dernière intervention 29 juin 2010 - 19 oct. 2008 à 13:44
mirmoleboss Messages postés 303 Date d'inscription mercredi 11 octobre 2006 Statut Membre Dernière intervention 29 juillet 2011 - 23 mars 2010 à 15:27
salut je viens tout juste de commencer la programmation assembleur depuis une semaine et je veux que mon programme m'affiche un caractère que j'entre précedemment au clavier... je bloque vraiment ...

Voilà mon code, je suppose que je fais erreur pour l'instruction de l'affichage mais je vois pas comment la résoudre ! merci de m'aider

Data segment
msg db "saisir caractere" , 13,10, "$"
msg1 db "le caractere saisi: ", 13,10, "$"
Data ends
pile segment stack
db 80 dup (?)
pile ends
code segment
assume CS: code, DS: Data, SS: pile

main :
mov ax, Data
mov ds, ax
mov ax, pile
mov ss, ax
mov cx, 1

mov dx, offset msg

mov ah, 09
int 21h
mov ah,7

int 21h
mov ah, al
mov dx, offset msg1
mov ah, 09
int 21h
mov DL, ah
int 21h

mov ah, 4ch
int 21h
code ends
end main

4 réponses

noussa6007 Messages postés 2 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 2 novembre 2008
22 oct. 2008 à 00:18
j'ai le même problème que toi,
mais je veux bien saisir une chaine de caractères non pas un seul.

aidez moi svp.
0
Forthman Messages postés 23 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 9 janvier 2014
23 oct. 2008 à 18:50
Hello,

après avoir saisie le caractère au clavier avec la fonction 7,  plutôt que de vouloir le sauver dans ah (qui va
être modifié par la fonction 9 appelée juste après) sauves le simplement sur la pile par un "push ax"
ensuite, tu peux faire un "pop dx" à la place du mov dl,ah
enfin, pour afficher UN caractère, il faut utiliser la fonction 6 de l'int 21 par un "mov ah,6"

Ca devrait fonctionner ;-)

a+ François
0
mohboa Messages postés 9 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 25 novembre 2008
20 nov. 2008 à 10:57
c'est tres simpl pour afficher un caracter voila mon programme 

assume cs:code
  code segment
main proc far
       mov AH, 1 ;saisie
       int 21h  ; le caractŠre lu arrive dans AL
       mov dl, AL
       mov AH,2
       int 21h
       mov ah,4ch
       int 21h
  code ends
main endp
end main
0
mirmoleboss Messages postés 303 Date d'inscription mercredi 11 octobre 2006 Statut Membre Dernière intervention 29 juillet 2011
23 mars 2010 à 15:27
Bonjour,
Comment fait on pour juste afficher un caractère sans interruptions?
-1
Rejoignez-nous