begin process at 2010 03 20 03:40:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Assembleur

 > 

Archives

 > 

Forum general 80xxx

 > 

probleme de conversation de hexa en ascii


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme de conversation de hexa en ascii

jeudi 11 décembre 2003 à 19:12:00 | probleme de conversation de hexa en ascii

wapiti


voici le programme qui converti du binaire en ascii


.model small
.stack
;------------------------------------------------------------------------------------------
.data
acnbre db "oooooooo$"
;------------------------------------------------------------------------------------------
.code
main:
; init DS
mov ax,@data
mov ds,ax
xor ax,ax
;------------------------------------------------------------------------------------------
mov al,00001101b ; nombre binaire à convertir
mov bx,0 ; compteur

bcl_debut:
cmp bx,8 ; si compteur = 8 (car 8 bits) :
je bcl_fin ; alors on arrete
mov cl,al ; sinon on sauve al dans cl
and cl,10000000b ; on isole le b7 (MSB)

jz pas_ajout ; si le résultat est !=0 -> ZF=0
inc acnbre[bx] ; -> on met 1 dans acnbre sinon on effectue le saut

pas_ajout:
rol al,1 ; on décale d'1 bit vers la gauche
inc bx ; incrémentation du compteur
jmp bcl_debut ; on continue

bcl_fin:
lea dx,acnbre ; affichage du nombre
mov ah,9
int 21h
;------------------------------------------------------------------------------------------
; DOS RETURN
mov ax,4c00h ; retour au dos avec le code exit 0
int 21h
end main




je sais que dans al lorsque je fais mon rol al,1 pour transformer cette exemple en hexadecimal,je dois faire al,4.
je sais egalement que dans ma boucle de debut quand j'isole le dernier bit pour le binaire en hexadecimale, il faudrait isoler 4 bit en hexadecimal.
ma question est : faut il que le nombre hexadecimal que l'utilisateur entrera sera converti par la suite en binaire pour finalement l'afficher en ascii ou puis je directement convertir de l'hexadecimale en ascii dans mon programme??
Ma logique est elle bonne???
pourriez vous m'aider et m'expliquer en detaille les differentes modifications a faire???
merci d'avance de concacrer un peu de temps a mon probleme

lundi 22 décembre 2003 à 10:49:13 | Re : probleme de conversation de hexa en ascii

hitchhikr

[QUOTE]
Puis je directement convertir de l'hexadecimale en ascii dans mon programme??
[/QUOTE]

Oui. L'hexadécimal n'est qu'une representation d'un nombre binaire en base 16. C'est purement fictif.

[QUOTE]
Ma logique est elle bonne???
[/QUOTE]

Oui. Il faut juste remplacer tout le code de conversion par:


movzx bx,al ; bx = 00xy
and bl,0fh ; bl = 0y
mov bl,[HexTbl+bx]
mov [acnbre+1],bl
mov bl,al ; bl = xy
shr bl,4 ; bl = 0x
mov bl,[HexTbl+bx]
mov [acnbre],bl


et HexTbl ressemble à ceci:


HexTbl db "0123456789ABCDEF"


Ce qui est beaucoup plus simple à comprendre et plus rapide à l'execution pour convertir un octet.
(Le même principe peut être appliqué aux conversions de nombres binaires).

Voila,
f.
lundi 5 janvier 2004 à 15:46:14 | Re : probleme de conversation de hexa en ascii

patatalo

Membre Club Administrateur CodeS-SourceS
HexTbl db "0123456789ABCDEF"

lea ebx,HexTbl
mov ah,al
shr al,4
and ah,0fh
xlat ; = ebx[al] exemple: si al=2 alors ebx[2] = '2' = 32h
mov [result],al
mov al,ah
xlat
mov [result+1],al

meme chose que hitchhikr mais avec utilisation xlat
sous nasm (xlatb)


Cette discussion est classée dans : binaire, ascii, mov, ax, al


Répondre à ce message

Sujets en rapport avec ce message

Conversion hexa vers ascii [ par Cygace ] Bonjour voici un code asm qui convertit un nombre binaire vers de l'ascii. Mais je dois modifiier ce code pour qu'il convertisse de l'hexadecimal vers Multiplication de deux nombres compris entre 0 et 99 en assembleur [ par petitspirou ] salut, j'ai un programme a faire mais je suis nul en assembleur, voici ce que j'ai fais mais ca ne fonctionne pas.Quelqun peut'il me le corriger et me Kernel qui n'est pas chargé par le bootloader [ par JB_59 ] Salut tout le monde !Voilà j'ai un problème de chargement de Kernel; j'ai codé un boot loader en asm qui m'affiche la phrase "Chargement du kernel..." probleme avec un bootloader [ par anonyme_man_in_this_world ] salut !! je voudrais coder un bootloader , tous ce compile bien ,je copie / colle le fichier .BIN dans une disquette ,mais lors le redemmarrage d fatal error LNK1190 [ par WildChild54 ] Bonjour à tous!Eh bien voilà, je voudrais créer un petit programme affichant l'heure (je sais il y en a déjà plusieurs qui en ont parlé ici) mais j'ai Deplacement [ par FireMan57 ] Bonjour, je débute en asm x86 et j'aimerais savoir comment faire pour effectuer correctement le déplacement d'un personnage en mode graphique. J'ai dé question sur le language asm [ par dyroj ] bonjour,j'ai qulque question sur l'asm :-quand je fait un : mov ax, 10 , quesqui va dans le registre (ladresse de 10 dans la ram, ou 10).-pourquoi se message d'erreur [ par kaka83185 ] slt a tous, je suis débutant en langage assembleur,j'essaye de faire mon premier programme en MASM, et c'est en fait l'addition d'un nombre avec un au Affichage de texte [ par ghuysmans99 ] Bonjour à tous,Je suis en train de créer un OS (pour l'instant, 16 bits) et mes routines d'affichage ne fonctionnent pas ...Voilà le code en question Affichage décroissant et alphabétique de 2 listes(Nom_Prénom et Note) [ par m_didi9 ] [code=autre]Data SEGMENT Mess1 DB 10,13, 'Entrez la liste des Noms :' DB 10, 13, '$' Mess2 DB 'Entrez la liste des Notes :' DB 10, 13, '$' Mess3


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

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 : 0,390 sec (3)

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