Saisie des touches avec tasm

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 295 fois - Téléchargée 28 fois

Contenu du snippet

ce programme explique la saisie des touches que l'on peut faire avec tasm.

----===== asmb =====----

Source / Exemple :


.model tiny
.stack
.code
  org 200h

saisie     db "[a] afficher menu [b] Afficher le menub [q] quitter?$"
bon        db "ok sa marche",13,10,'$'
saisie2    db "[r] Retour au menu?$"
sort       db "bye bye!",13,10,'$'

bon2       db "Le deuxieme menu marche",13,10,'$'

start:

;initialisation du PSP
      mov ax,@data
      mov ds,ax

;efface ecran
      mov ax,0013h
      int 10h
      mov ax,003h
      int 10h

;appel du texte de saisie
      mov dx,offset saisie
      mov ah,09h
      int 21h

; la ligne mov ah,01h est indispensable pour chaque saisie de touche
; sinon rien ne fonctionne

      mov ah,01h
      int 21h

      cmp al,'a'    ; si la touche minuscule a est appuyee alors on affiche 
      je menu       ; le menu:

      cmp al,'b'
      je menu2

      cmp al,'q'    ; si la touche q minuscule est appuyee alors on affiche
      je sortie     ; le menu de sortie

menu:
     mov ax,0013h               ;appel du mode texte
     int 10h                    ;mode video
     mov ax,0003h               ;efface l'ecran
     int 10h                    ;mode video

     mov dx,offset bon          ;appel du texte bon
     mov ah,09h                 ;procedure d'affichage
     int 21h                    ;du mode msdos

     mov dx,offset saisie2      ;appelle de la saisie2
     mov ah,09h                 ;affiche le message
     int 21h                    ;sous msdos

     mov ah,01h                 ;appel du mode saisie,sans ca rien ne 
     int 21h                    ;fonctionne
     
     cmp al,'r'                 ;si la touche r minuscule est appuyee alors
     je start                   ;on retourne au menu principale

menu2:

     mov ax,0013h               ;appel du mode texte
     int 10h                    ;mode video
     mov ax,0003h               ;efface l'ecran
     int 10h                    ;mode video

     mov dx,offset bon2          ;appel du texte bon
     mov ah,09h                 ;procedure d'affichage
     int 21h                    ;du mode msdos

     mov dx,offset saisie2      ;appelle de la saisie2
     mov ah,09h                 ;affiche le message
     int 21h                    ;sous msdos

     mov ah,01h                 ;appel du mode saisie,sans ca rien ne 
     int 21h                    ;fonctionne
     
     cmp al,'r'                 ;si la touche r minuscule est appuyee alors
     je start                   ;on retourne au menu principale

sortie:

     mov ax,0013h               ;procedure de sortie en effacant l'ecran
     int 10h                    ;en mode texte avec l'int 10h
     mov ax,0003h
     int 10h

     mov dx,offset sort         ;procedure habituel d'affichage de texte
     mov ah,09h
     int 21h

     mov al,00h                 ;reinitialise le clavier avant la sortie
     mov ax,4c00h               ;retourne sous le promt (win95)
     int 21h                    ;shell msdos
end start

;tasm /o menu.asm
;tlink menu.obj

A voir également

Ajouter un commentaire

Commentaires

Messages postés
162
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
17 novembre 2010

heu, non, escuse je me suis trompé.

jmp start

juste après

cmp al,'q'
je sortie

voilà.
a +
Messages postés
162
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
17 novembre 2010

pas mal, mais si on appuie sur nimporte kelle touche, le programme continue. je te propose d'écrire

jmp start

juste après

cmp al,'r'
je start

pour ke si une autre touche (échap, entrée...) est appuyé, rien ne se passe.

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.