Byte to Ascii
Page 1 sur 1 • Partager •
Byte to Ascii
Bonjour à tous.
Voilà, la question est dans le titre...
En fait j'ai une chaine Hexa (en prenant en compte seuls les bytes non nuls) dans un buffer, par exemple:
A l'adresse 00406000 j'ai une valeur, de 6 bytes (1DWORD+1WORD), placée dans un Buffer: 0Bh,03h,F5h,C2h,D4h,A0h,00h,00h. J'aimerais convertir ce buffer en chaine ascii à l'identique, pour obtenir cette chaine: "0B03F5C2D4A0" (qui correspondrait normalement à
30h,42h,30h,33h,46h,35h,43h,32h,44h,34h,41h,30h ).
Je ne sais si j'ai été assez clair?
Je sais qu'il existe déjà des macros pour convertir un Dword en chaine, j'ai utilisé ça:
invoke dw2hex, HexBuffer, addr AsciiBuffer
Par rapport à l'exemple ci-dessus, avec cette fonction, je n'arrive à afficher que ça: 0B03F5C2 ... il manque le word
Mon souci est que ça ne prend que la valeur d'un DWORD, donc pour 1 Dword+ 1 word, ça ne convient pas.
Ma question: existe-t-il des solutions "prêtes à l'emploi" pour obtenir des chaines de longueurs supèrieures à 1 DWORD?
Merci pour votre aide
Voilà, la question est dans le titre...
En fait j'ai une chaine Hexa (en prenant en compte seuls les bytes non nuls) dans un buffer, par exemple:
A l'adresse 00406000 j'ai une valeur, de 6 bytes (1DWORD+1WORD), placée dans un Buffer: 0Bh,03h,F5h,C2h,D4h,A0h,00h,00h. J'aimerais convertir ce buffer en chaine ascii à l'identique, pour obtenir cette chaine: "0B03F5C2D4A0" (qui correspondrait normalement à
30h,42h,30h,33h,46h,35h,43h,32h,44h,34h,41h,30h ).
Je ne sais si j'ai été assez clair?
Je sais qu'il existe déjà des macros pour convertir un Dword en chaine, j'ai utilisé ça:
invoke dw2hex, HexBuffer, addr AsciiBuffer
Par rapport à l'exemple ci-dessus, avec cette fonction, je n'arrive à afficher que ça: 0B03F5C2 ... il manque le word
Mon souci est que ça ne prend que la valeur d'un DWORD, donc pour 1 Dword+ 1 word, ça ne convient pas.
Ma question: existe-t-il des solutions "prêtes à l'emploi" pour obtenir des chaines de longueurs supèrieures à 1 DWORD?
Merci pour votre aide
PapaBango- Messages: 6
Date d'inscription: 20/05/2010
Re: Byte to Ascii
a ta place je dévellopperait ta propre macro pour afficher un seul octet que j'utillisserais 6 fois pour afficher un seul octet par exemple:
on peut très bien aussi stocker les caractère dans une chaine et ne tous les afficher qu'as la fin
- Code:
affhex: ;affiche le contenu de al en hexadécimal
mov ah,al
and ax,0F00Fh
shr ah,4 ;dans ah se trouve alors les 4 MSB et dans al les 4 LSB
add al,"0" ;on ajoute alors aux deux registre la valeur ascii du zéro
add ah,"0" ;pour obtenir le caractère ascii corespondant a la valeur numéraire qui se trouve dans le registre
cmp al,"9" ;par contre comme le caractère A ne succède pas au carractère 9 on doit réajuster si la valeur correspond a une lettre
jle pasajl
add al,"A"-"9" ;de mémoire c'est un truc comme ça mais c'est a vérifier
pasajl:
cmp ah,"9" ;idem pour le MSB
jle pasajl
add ah,"A"-"9" ;idem c'est a vérifier
pasajl:
;insérer ici une fonction qui affiche le caractère contenu dans ah (MSbs en premier)
;insérer ici une fonction qui affiche le caractère contenu dans al (LSBs en dernier)
on peut très bien aussi stocker les caractère dans une chaine et ne tous les afficher qu'as la fin

bifur- Messages: 50
Date d'inscription: 21/05/2010

Re: Byte to Ascii
Merci de ta réponse, et du coup c'est ce que j'ai fait. Je me suis bidouillé une petite routine pour l'occasion et pour si peu , je peux aussi utiliser deux fois la fonction dw2hex
et placer les bytes un à un dans une chaîne en ignorant les bytes de 00h.
Mais je voulais savoir s'il n'existait pas une fonction ayant déjà ce rôle.
Merki
Mais je voulais savoir s'il n'existait pas une fonction ayant déjà ce rôle.
Merki
PapaBango- Messages: 6
Date d'inscription: 20/05/2010
Sujets similaires» caractères spéciaux et codes ASCII (résolu)
» [RESOLU] Code ASCII erroné dans le texte de Outloock Express
» ASCII Art.
» La fête de l'ascii
» Quels ascii interdits pour mémo
» [RESOLU] Code ASCII erroné dans le texte de Outloock Express
» ASCII Art.
» La fête de l'ascii
» Quels ascii interdits pour mémo
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum




