Lecture touche clavier[masm]

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

Du même auteur (w4kfu)