begin process at 2012 05 24 01:51:55
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Tutoriels

 > AFFICHE LE CODE ASCII D'UNE TOUCHE

AFFICHE LE CODE ASCII D'UNE TOUCHE


 Information sur la source

Note :
5,33 / 10 - par 3 personnes
5,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Tutoriels Niveau :Débutant Date de création :07/07/2002 Date de mise à jour :12/01/2005 19:24:58 Vu / téléchargé :17 723 / 222

Auteur : Supden2000

Ecrire un message privé
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

Ce prog utilise l'int 16h
entrée ax=0
sorie al=code ascii de la touche.
affiche la registre al

Source

  • ;Turbo Assembler Version 3.2
  • ;Turbo Link Version 5.1
  • ;tasm fichier.asm
  • ;tlink /t fichier.obj
  • Code Segment
  • assume cs:code,ds:code,es:code ;.com
  • ORG 0100h ;.com
  • Start:
  • ;fonction 0 de l'int 16h du bios
  • ;entrée ah = 0
  • ;sortie AL = code ASCII de la touche
  • xor ah,ah ; ah = 00
  • int 16h ;appelle int
  • ;al == le code ascii
  • ;la valeur du registre al (8 bits) peut sécrire sur 2 chiffres en base 16
  • ;chaque chiffre en base 16 (héxadécimale) étant codé sur 4 bits
  • mov bl,al
  • shr al,4
  • ;sauve bl dans al (bl = al)
  • ;décale de 4 bits vers la droite
  • ;revient a diviser par 16 (car 2^4 = 16)
  • ;exemple: al = 12h -shr al , 4-> al = 01h
  • call R_AfficheAsciiAL
  • shl bx,4
  • ;idem sauf que l'on décale dans l'autre sens
  • ;exemple: bx = 0012h -shl bl,4-> bx = 0120h
  • xor bh, bh ; bh = 00
  • shl bx,4
  • ;exemple bx = 0020h -> bx = 0200h , bh = 02h
  • mov al, bh
  • call R_AfficheAsciiAL
  • Fin:
  • int 20h ;fin du programme (.com)
  • R_AfficheAsciiAL proc near
  • cmp al,10 ;al ?? 10
  • jb Chiffre ;si al < 10 alors saute -> Chiffre
  • ;aussi non
  • add al,55
  • ;al peut valoire (0ah, 0bh ,0ch ,0dh ,0eh ,0fh)
  • ;donc il faut afficher une lettre a partire de a
  • ;exemple: al = 0ah alors on met le code ascii "a" dans al
  • ;al = 0ah -> al + 55h = 5fh = code ascii de "a"
  • Aff_et_ret:
  • mov ah,0eh
  • ;fonction qui affiche le caractère représenter dans le code ascii de al
  • int 10h
  • ret
  • Chiffre:
  • add al,30h ;car "0" = 30h, "1" = 31h, 2 = 32h, ...
  • ;exemple al = 5 al + 30h = 35h
  • jmp Aff_et_ret ; pour ne pas écrir 2x el même code.
  • R_AfficheAsciiAL endp
  • code ends
  • end start
;Turbo Assembler  Version 3.2 
;Turbo Link  Version 5.1
;tasm fichier.asm
;tlink /t fichier.obj

Code Segment
assume cs:code,ds:code,es:code   ;.com
ORG 0100h          ;.com

Start:
;fonction 0 de l'int 16h du bios
;entrée ah = 0
;sortie AL = code ASCII de la touche		
      xor ah,ah ; ah = 00
      int 16h   ;appelle int
      
      ;al == le code ascii
      ;la valeur du registre al (8 bits) peut sécrire sur 2 chiffres en base 16
      ;chaque chiffre en base 16 (héxadécimale) étant codé sur 4 bits
      
      mov bl,al   
      shr al,4    
;sauve bl dans al (bl = al)
;décale de 4 bits vers la droite
;revient a diviser par 16 (car 2^4 = 16)
;exemple: al = 12h   -shr al , 4->  al = 01h

      call  R_AfficheAsciiAL
      
      shl bx,4 
;idem sauf que l'on décale dans l'autre sens
;exemple: bx = 0012h   -shl bl,4-> bx = 0120h

      xor bh, bh   ; bh  = 00
      shl bx,4     
;exemple bx = 0020h  ->  bx = 0200h , bh = 02h

      mov al, bh
      call  R_AfficheAsciiAL
      
Fin:
      int 20h    ;fin du programme (.com)

R_AfficheAsciiAL proc near
      cmp al,10    ;al ?? 10
      jb Chiffre   ;si al < 10 alors saute -> Chiffre

      ;aussi non
      add al,55 
;al peut valoire (0ah, 0bh ,0ch ,0dh ,0eh ,0fh)
;donc il faut afficher une lettre a partire de a
;exemple: al = 0ah alors on met le code ascii "a" dans al
;al = 0ah  -> al + 55h = 5fh = code ascii de "a"

Aff_et_ret:
      mov ah,0eh   
;fonction qui  affiche le caractère représenter dans le code ascii de al
      int 10h
      
      ret

Chiffre:
      add al,30h  ;car "0" = 30h, "1" = 31h, 2 = 32h, ...
                  ;exemple al = 5    al + 30h  =  35h

      jmp Aff_et_ret ; pour ne pas écrir 2x el même code.
      
R_AfficheAsciiAL endp

code ends
end start


 Conclusion

Petit prog prarique :-)
Visite http://www.passionpc.net

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • Pascii.asmTélécharger ce fichier [Réservé aux membres club]Voir ce fichier2 032 octets
  • PASCII.COMTélécharger ce fichier [Réservé aux membres club]57 octets
  • PASCII.MAPTélécharger ce fichier [Réservé aux membres club]99 octets
  • PASCII.OBJTélécharger ce fichier [Réservé aux membres club]188 octets

Télécharger le zip


 Historique

12 janvier 2005 19:18:56 :
Code plus simple, plus rapide avec plus de commentaires.
12 janvier 2005 19:24:58 :
Plus de commentaires

 Sources du même auteur

ENVOIT MAIL MASM32

 Sources de la même categorie

Source avec Zip FLOATTOHEX CODE DE BRUNEWS RETRENSCRIS EN ASM PAR MOI par quoi
Source avec Zip [TUTO]PRISE EN MAIN ET CRÉATION DE .EXE À L'AIDE D'UN DÉBUGU... par rt15
Source avec Zip FPU SAMPLE 2. par tomart2005
Source avec Zip STARFIELD, SPHERE, CUBE, ROTATION 3D ET 2D EN UTILISANT LE F... par tomart2005
Source avec Zip REPRÉSENTATION D'UNE SPHÈRE EN 3D (FLAT SHADING) par Nasman

Commentaires et avis

Commentaire de Ninkosen le 07/07/2002 13:22:52

ben c'est un prog pratique c sûr, mais y'a beaucoup plus simple :-) tu t un peu pris la tête là ;-)

Commentaire de ManChesTer le 08/07/2002 02:40:54 administrateur CS

affletre est vraiment trops long, essaye :

AFFLETTRE proc near
   cmp ah,$09
   jg    afl
   ret
Afl:    
   add ah,55
   call affichage
   ret
AFFLETTRE endp

bon codage

ManChesTer

Commentaire de jade le 12/05/2003 21:36:56

c'est programme utile j'éspère que tu m'envoi l'éditeur

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales