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.