Lecture touche clavier[masm]

Soyez le premier à donner votre avis sur cette source.

Snippet vu 12 235 fois - Téléchargée 18 fois

Contenu du snippet

Bonjour , je débute en ASM et je viens d'écrire ce petit programme qui demande à l'utilisateur d'appuyer sur une touche du clavier et lui affiche la touche sur la quelle il a appuyé.Tant qu'il n'a pas appuyé sur ECHAP le programme boucle.

J'utilise MASM32v10 et pour la compilation et édition de liens , j'utilise la séquence de commande suivante se trouvant dans le /BIN de masm32 ::
- ml /c mon_fichier.asm
- link16 mon_fichier

Il ne restera plus qu'à executer.

Source / Exemple :


.MODEL SMALL
;Creation d'une pile de 256 octets
.STACK 100h

;Les donnees du programme
.DATA
message db "Hello!",10,13,"$"
message2 db 10,13,"Appuyez sur une touche :$"
message3 db 10,13,"Vous avez appuyez sur :$"
quitter db 10,13,"Fermeture du programme , By3 bYe$"

.CODE
.8086

debut:  ;inclusion des donnees necesaire au programme
		MOV AX,@data
		MOV DS,AX
		
		;Affichage message debut
		MOV DX,OFFSET message
		MOV AH,09h
		INT 21h

Demande:		
		;;Affichage message demande frappe
		MOV DX,OFFSET message2
		MOV AH,09h
		INT 21h
		;Attente frappe touche
		MOV AH,01h
		INT 21h
		;on range le caractere dans bl
		mov bl, al ;
		;Affichage message vous avez appuyez
		MOV DX,OFFSET message3
		MOV AH,09h
		INT 21h
		;on copie notre caractere dans dl
		MOV DL,BL
		;On affiche le caractere present dans dl
		MOV AH,2h
		INT 21h
		;;On compare bl a la touche ECHAP
		CMP bl,1Bh
		JNZ Demande
		JMP Quit

Quit:
	    ;;Affichage du message de fin
		MOV DX,OFFSET quitter
		MOV AH,09h
		INT 21h
		;;fin du programme et retour au dos
		MOV AH,4Ch
		INT 21h
		
END debut

Conclusion :


Je suis ouvert à toutes remarques , critiques , et optimisation de codes.

A voir également

Ajouter un commentaire Commentaires
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 72
3 avril 2009 à 05:49
c'est BruNews qui va être content de te voir jouer avec les interruptions materiel...
ghuysmans99 Messages postés 2495 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 1
3 avril 2009 à 19:43
Cette source est mise à juste titre dans "Applications MS-DOS" donc pas de problème ...
Tant que c'est pour DOS t'as pas trop le choix !
42wawa42 Messages postés 143 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 6 septembre 2011
6 avril 2009 à 16:30
Hello w4kfu

La ligne 46 avec "CALL Quit" n’est pas très juste car un CALL et un appelle de sub-routine avec à la fin "RET", personnellement j'utiliserai "JMP Quit" inconditionnellement. Les Lignes 48-50 sont de trop.

Mais votre programme traite que une touche et pour Shift ou Alt. plus une touche ? Ou par exemple la valeur décimale ou hexadécimal d’une touche.

A plus
42wawa42
w4kfu Messages postés 8 Date d'inscription jeudi 2 avril 2009 Statut Membre Dernière intervention 13 avril 2009
8 avril 2009 à 20:54
Bonjour 42wawa42,

Le traitement d'appui sur une touche avec <SHIFT> ou enfoncé fonctionne très bien.
J'ai édité la source suite à ta remarque,merci.
Bkawita Messages postés 1 Date d'inscription dimanche 11 octobre 2009 Statut Membre Dernière intervention 22 novembre 2009
22 nov. 2009 à 16:10
héééy !!
j'ai un problème vek le masm!
je l'est télécharger vek le winzip et ché pluus comment le faire pr l'executer àfin de compliler mé programmes!! :(
aidez moi SVP

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (w4kfu)