begin process at 2012 02 09 05:08:40
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

divers

 > CONVERSION CHAINE / NOMBRE

CONVERSION CHAINE / NOMBRE


 Information sur la source

Note :
Aucune note
Catégorie :divers Niveau :Débutant Date de création :23/02/2003 Date de mise à jour :23/02/2003 15:55:34 Vu :8 131

Auteur : Nemesis

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

 Description

Avec cette petite routine pour NASM, vous pourrez convertir un nombre sous forme de chaine de caractères au format hexadécimal en valeur numérique. Par exemple:

       "5A"  devient  5Ah
       "FF"   devient FFh
       etc...

Pour l'utiliser, il faut lui mettre dans EBX l'adresse de la chaine (2 caractères). En sortie, AL contiendra le nombre.

Source

  • ; ebx contient l'adresse de la chaine (2 caractères)
  • ; al contiendra le nombre
  • ; pour comprendre on prend la chanie "5A"
  • Hex2Int:
  • push dword ecx ; sauve le registre ECX
  • mov ch, byte[ebx] ; ah <- "5"
  • mov cl, byte[ebx+1] ; al <- "A"
  • mov ah, ch
  • sub ah, "0" ; ah <- 5 ("5"-"0")
  • mov al, cl
  • sub al, "0" ; al <- 0Ah ("A"-"0")
  • shl ah, 4 ; ah <- 0101 0000
  • or al, ah ; al <- 0101 1010 = 5A (al or ah)
  • pop ecx ; récupère ECX
  • ret ; quitte la sous-routine
  • ; al contient donc bien le nombre sous forme numérique
; ebx contient l'adresse de la chaine (2 caractères)
; al contiendra le nombre

; pour comprendre on prend la chanie "5A"

Hex2Int:

push dword ecx               ; sauve le registre ECX

mov ch, byte[ebx]             ; ah <- "5"
mov cl, byte[ebx+1]           ; al <- "A"

mov ah, ch
sub ah, "0"                   ; ah <- 5      ("5"-"0")

mov al, cl
sub al, "0"                   ; al <- 0Ah    ("A"-"0")

shl ah, 4                     ; ah <- 0101 0000

or al, ah                     ; al <- 0101 1010 = 5A (al or ah)

pop ecx                     ; récupère ECX

ret                              ; quitte la sous-routine

; al contient donc bien le nombre sous forme numérique

 Conclusion

Cette routine à été écrite pour NASM, mais bon ,je compte sur vous pour la transformer pour les autres assembleurs...


Nemesis


 Sources de la même categorie

Source avec Zip Source avec une capture MINI DEBUG par parki
Source avec une capture DESSIN DE RECTANGLES (POSITION, TAILLE, COULEUR, ÉPAISSEUR) par macsou01
RECHERCHE DES PALINDROMES D'UN TEXTE SAISI. par PCBill
Source avec Zip LIBRAIRIE GRAPHIQUE (ET PLUS) EN MODE RÉEL par epineurien
Source avec Zip Source avec une capture LIB PROGRESSBAR (PERSONNALISABLE , DÉGRADÉ DE COULEUR,POURCE... par knetus

Commentaires et avis

Commentaire de eishtein le 10/08/2010 09:22:59

stp vous n'aurez po par hasard le même algorithme avec la convention 16 bits

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 1,732 sec (3)

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