Précédent   Forum du club des développeurs et IT Pro > Autres langages > Assembleur
Assembleur Forum d'entraide Assembleur. Avant de poster -> F.A.Q Assembleur Tutoriels Assembleur
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 23/12/2012, 11h03   #1
AUndomiel
Invité de passage
 
Inscription : décembre 2012
Messages : 2
Détails du profil
Informations forums :
Inscription : décembre 2012
Messages : 2
Points : 1
Points : 1
Par défaut Conversion d'un décimal vers sa représentation ASCII

Bonjour,

J'ai besoin de créer une procédure (sous nasm) nommée Proc_convert, qui va me permettre de convertir un nombre décimal positif (ex:2012) vers sa représentation ASCII, pourriez-vous m'aider ?

Sachant que j'avais déjà créé la même procédure mais pour les nombres positifs<100, comme suit :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Proc_convert:
 
		; l'entrée sera chargée en var
 
		mov ax,[var]       
		mov bx, 10   ;dissocier les unités des dizaines
		div bx
 
		add ah,30h
		add al,30h
 
		mov [tmp], al   
		mov [tmp+1], ah
		;la sortie sera stockée en [tmp] et [tmp+1]
 
		ret
AUndomiel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2012, 14h28   #2
bifur
Membre habitué
 
passe le balais et l'aspirateur
Inscription : mars 2008
Messages : 111
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : passe le balais et l'aspirateur

Informations forums :
Inscription : mars 2008
Messages : 111
Points : 126
Points : 126
il te suffit d'uttiliser une boucle de ce que tu as déja uttilisé et de stocker les résultat dans une pile (LIFO)

comme par exemple:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
mov cx,"$$"  ;on empile pour signaler que l'on est arrivé a la fin de la chaine
push cx
mov cx,10
 
boucle1:
xor dx,dx             ;pas oublier de mettre dx a zéro, la division l'uttilise aussi
div cx
add dl,"0"        ;ou 30h (le code ascii du zéros)
push dx                           
cmp ax,0
jne boucle1:
il suffit alors de dépiler et d'afficher les caractère jusqu'a arriver sur le symbole $ (qui a été empilé en premier

Code :
1
2
3
4
5
6
7
8
9
 
boucle2:
pop dx
cmp dx,"$$"
je fin
;insérer ici une procédure pour affichier le caractère ascii stocké dans dl
jmp boucle2
 
fin:
au lieux d'uttiliser la pile tu peut très bien uttiliser un buffer situé ou tu le souhaite
bifur est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h15.


 
 
 
 
Partenaires

Hébergement Web