Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : conversion de nombre [ Archives / c, c++ et asm ] (jolindji)

dimanche 18 mai 2003 à 16:44:49 | conversion de nombre

jolindji

bonjour a tous...

j'ai besoin d'un petit programme qui effectuerai la conversion d'un nombre entré au clavier en base 2,8,10,16
ou quelque choes qui y ressemble merci d'avance
ou bien des idées sur comment je pourrai y arriver merci bcp d'avance....

dimanche 18 mai 2003 à 19:01:09 | Re : conversion de nombre

prunkdump





-------------------------------
Réponse au message :
-------------------------------

Voilà comment il faut procéder:

tu à un nombre en hexadécimal dans un registre de processeur, nous allons convertir ce nombre en décimal:

-le nombre est par exemple dans eax
-tu divise ce nombre par dix

mov edx, 0
mov esi, 10
div esi

-tu a alors le reste de la division dans edx, il faut maintenant convertir ce nombre en ascii pou cela tu ajoute tout simplement le caractère "0"

add dl, "0"

-mais ce reste est le chiffre décimal de poids le plus faible il faudra donc l'afficher en dernier on met donc ce chiffre sur la pile

push dx

-il faut également savoir combien de chiffre tu a donc à chaque fois que tu pousse le reste sur la pile tu écremente cx

inc cx

-quand le reste est 0 c'est fini donc tu peu commencer à desempiler la pile.

;---------------------------------------
;la première routine est donc:

mov esi, 10
mov cx, 0
;-----------------
routine1:
mov edx 0
div esi
add dl, "0"
push dx
inc ecx
cmp ax, 0
jne routine1
;--------------------------------------


-il suffit en suite de désempiler les caractères 1 par 1 et de les placer dans un buffer il faut donc placer l'adresse de ce buffer dans un registre.

mov dx, buffer (offset buffer)

-tu désempile le caractère

pop ax

-tu met le caractère dans le buffer

mov byte [bx], al

-tu incrémente dx

inc bx

-puis puisque tu à dans cx le nombre de caractère enpilé tu recommence cette boucle le nombre de fois que donne cx

-loop routine2

;-----------------------------------------------------------
;la deuxième boucle est donc

mov bx, buffer
;-----------------------
routine2:
pop ax
mov byte [bx], al
inc bx
loop routine2


-puis si tu est sous ms-dos tu finis par

mov byte [bx], "$"


;------------------------------------------------------------
;------------------------------------------------------------
;routine complète

mov eax, nombre
mov esi, 10
mov cx, 0
;-----------------
routine1:
mov edx 0
div esi
add dl, "0"
push dx
inc ecx
cmp ax, 0
jne routine1
mov bx, buffer
;-----------------------
routine2:
pop ax
mov byte [bx], al
inc bx
loop routine2
;-----------------------
mov byte [bx], "$"
;-------------------------------------------------------------
;-------------------------------------------------------------

-voilà tu à dans ton buffer la chaine à afficher

-pour changer de base il suffit de changer la division (diviser par 2, 4, 8, 10)


si tu a un problême prunkdump



> bonjour a tous...
>
> j'ai besoin d'un petit programme qui effectuerai la conversion d'un nombre entré au clavier en base 2,8,10,16
> ou quelque choes qui y ressemble merci d'avance
> ou bien des idées sur comment je pourrai y arriver merci bcp d'avance....



Cette discussion est classé dans : nombre, conversion, avance


Répondre à ce message

Sujets en rapport avec ce message

Petit problème pour le nul en assembleur que je suis Merci d'avance [ par rgc50 ] Trouver parmis les 5 nombres 67, 79, 15, e3, 72 le nombre le pls élevé, on le stockera le résultat en 0100 (en assembleur 68000 (MOTOROLA)). Pb assembleur très facile (pas pour moi) Merci d'avance [ par rgc50 ] Trouver parmis les 5 nombres 67, 79, 15, e3, 72 le nombre le pls élevé, on le stockera le résultat en 0100 (en assembleur 68000 (MOTOROLA)). conversion [ par knetus ] pourrait t'on m'indiquer l'instruction pour convertir de l'hexa vers le decimal et inversement.merciknetus@aol.com conversion [ par jolindji ] salut a toutes et a tous... j'ai besoin d'un programme en assembleur qui convertit des nombres entrés au clavier (des nombres en bases 2,8,10,16) en n petit problême FPU [ par prunkdump ] Bonjours, voilà je voudrais savoir comment afficher un nombre à vigule flottante lorsqu'il est en mémoire. Plus simplement comment convertir un nombre conversion de nombres ds differentes bases [ par jolindji ] j'ai besoin d'un programme qui me permettent d'encoder un nombre entre 0 et 65535 en assembleur (tasm)... Merci d'avance Ps svp c'est urgent... Comment convertir une chaine de caractere en nombre [ par davidv ] Voila,comment une chaine de caractere "12" par exemplepeut elle etre convertie en nombre 12.merci a tousdavidV GENERATUER NOMBRE ALEATOIRE EN ASM [ par fser ] | -= Fr@nçois =- | (cliquez pour m'envoyer un mail)mon siteMERCI DE FAIRE PARVENIR UN PROGRAMME EN ASSEMBLEUR POUR 68 HC 11 POUR GENER Avez-vous des algorithmes pour la génération de nombre aléatoire? [ par Rigel Io ] Salut, ma question est donc assez simple je voudrai seuleument savoir comment générer des nombres aléatoires. Je voudrai savoir car à chaque fois que Aide nombre en asm 8086 16 bits [ par Maureka ] je suis debutant en asm intel 16 bits.j'ai un projet à réaliser et cela consiste à faire un programme qui affiche la liste des nombres premiers compri


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,468 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.