Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2085 connectés 

  FORUM HardWare.fr
  Programmation
  ASM

  [ASM] Quitter le programme lorsque l'on appuie sur une touche

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ASM] Quitter le programme lorsque l'on appuie sur une touche

n°915104
xplo
Posté le 05-12-2004 à 13:45:17  profilanswer
 

Bonjour.
Bon je suis debutant en asm, on a commence ca il y a 2 semaine ^^;
C'est de l assembleur 8086
 
Alors voila j'aimerai bien quitter mon programme des que l on appui sur la touche ESC par exemple. Donc j ai fait une boucle infini qui scan le port 60h (le clavier) et compare la valeur a 01 ( valeur de ESC ).
 
Cela donne :
 
boucle:
      MOV DX,60h
      IN AX,DX     ;scan le clavier
      CMP AX,1h    ;compare la valeur scanné a 1 (ESC)
      JZ fin       ;si la comparaison est egale, on saute a fin:
      JMP boucle
       
fin:
      ret
 
Ca marche tres bien sous winXP mais ca ne marche pas sous msdos(le vrai dos).
Pourquoi?
Et comment je pourrai faire la meme chose sous dos ?

mood
Publicité
Posté le 05-12-2004 à 13:45:17  profilanswer
 

n°915562
Lam's
Profil: bas.
Posté le 06-12-2004 à 11:55:37  profilanswer
 

A priori, c'est parce que AH ne vaut pas 0. Donc fait plûtot un IN AL, DX.
 
Qui plus est, tu as 2 instructions de saut (JNZ et JMP) là où tu pourrais n'en avoir qu'une.  
 
      MOV DX,60h  
boucle:  
      IN AL,DX  
      CMP AX,1h  ; "DEC AX" irait plus vite ici...
      JNZ boucle
      ret  
 
 
Bon, tout ça reste bien sûr une méthode très "primitive" de fonctionner (ça bouffe un max de temps CPU au lieu d'attendre une interruption déclenchée par le clavier, et ça risque de cours-circuiter le vrai handler clavier), mais pour du code écrit au bout de 2 semaines, c'est déjà pas mal. :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASM

  [ASM] Quitter le programme lorsque l'on appuie sur une touche

 

Sujets relatifs
débutant c++ gtk cherche aide pour petit programmeSavoir en quel langage a ete programme un logiciel...
simuler lappui d'une touche[C++] Migrer un programme VB vers VC++
executer un programme sur le serveurContrôle de l'exécution d'un programme
Lire des données dans un programme (simulateur)[ASM/Intrinsics] Code asm généré
Programme qui resiste a un formatageprogramme pour fermer et relancer un .ppt
Plus de sujets relatifs à : [ASM] Quitter le programme lorsque l'on appuie sur une touche


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR