Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur l'Assembleur !

Modérateur : mazertoc

conversion hexa->ascii 16bits
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#1 Message par Jérémy » dim. 20 déc. 2015 11:19

Bonjour maï,

Super initiative d'alimenter cette section du forum. J'avoue que je pensais qu'il y allait avoir plus de monde avec des problèmes en ASM ( c'est trop dur humour!! ). Le forum manque encore de pub, les personnes postent dans des forums généralistes en électroniques , qui ont pignons sur rue comme FUTURA ou Nano-électronique, car FantasPic n’ai pas encore assez connu . A nous de jouer, 'j’ai envie de dire ! il faut aller chercher le poisson ( comme dirait ma femme ), et attirer les personnes.

Encore Bravo à vous tous, qui gérés l'ASM avec Brio !
C'est en faisant des erreurs, que l'on apprend le mieux !!!

conversion hexa->ascii 16bits
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#2 Message par Gérard » dim. 20 déc. 2015 14:39

Bonjour,
Je vois l'utilité de conversion bin --> BCD ou l'inverse mais à quoi sert hexa --> ascii?

Merci d'éclairer ma LED.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

conversion hexa->ascii 16bits
mazertoc
Passioné
Passioné
Messages : 201
Enregistré en : juillet 2015
Localisation : Auvernha

#3 Message par mazertoc » dim. 20 déc. 2015 15:45

Gérard a écrit :Bonjour,
Je vois l'utilité de conversion bin --> BCD ou l'inverse mais à quoi sert hexa --> ascii?
Merci d'éclairer ma LED.

Idem.
Et pourquoi 16 bit ?

conversion hexa->ascii 16bits
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#4 Message par Guest » dim. 20 déc. 2015 16:25

Gérard bin c'est de HEXA .

Car lorsqu'on fait une conversion hexa->BCD et que l'on veux afficher cela sur un LCD par exemple, ils vous manquent la conversion BCD->ASCii ,oui va dur afficher directement un BCD sans passer par les caractères ASCII et pas uniquement pour un LCD.

En C vous avez par exemple fonction itoa qui est HEXA -> ASCII vous avez aussi ftoa qui est FLOTTANT ->ASCII.
Ici c'est la fonction itoa

Pourquoi 16 bits dans une fonction en ASM il faut bien avoir des limites ,Dans ton lien sur les opérations tu as bien addition sur 16 bits etc.... NON, est bien ici c'est une fonction itoa sur 16bits mais en ASM
Modifié en dernier par Anonymous le dim. 20 déc. 2015 17:06, modifié 1 fois.

conversion hexa->ascii 16bits
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#5 Message par paulfjujo » dim. 20 déc. 2015 17:05

bonsoir Mai


J''ai voulu comparer les tailles , entre la fonction equivalente mikroC WordToHex ,
qui transforme un mot de 16 bits en sa representation HEXADECIMAL Ascii
... alors que ta fonction transforme un mot de 16 bits en sa representation DECIMALE..

J'ai utilisé la possibilité d'entrer de l'ASM dans MikroC et les outils du debugger Watch Clock et Watch value
je retouve bien 222 cycles pour ta fonction.. mais je comparais alors 2 fonctions differentes..

Il me semble qu'il y a un bug dans ta fonction , qui donne des valeurs abherantes pour certaines valeur
qui serait dû (conditionnel !) au branch BRA Cent1+2
le MOVLW 0x64 devant prendre qu'un seul cycle.. on devrait avoir BRA Cent1+1 ...
je ne peux pas ecrire sous cette forme..(msg error compil ?? ) j'ai donc placé une etiquette Cent11 juste apres le movlw
et là, la fonction Decimal To String donne bien de bons resultats..


Code : Tout sélectionner

*********************** centaines **********************************

Cent:
   MOVLW   0XE8
   ADDWF   _NBHEXL
,F
   MOVLW   0X03
   ADDWFC   _NBHEXH
,F      ;NBHEXH,NBHEXL+1 000

Cent1
:
   MOVLW   0x64
Cent11
:                  ;
   SUBWF   _NBHEXL,F      ;NBHEXL-100
   BTFSS   STATUS
,C
   BRA      Cent2      
;test débordement oui
   INCF   _ASCII2  
,F      ;non cent+1
   BRA      Cent11     
; on retourne    // car BRA Cent1+2 donne une errur de compil



Peux-tu verifier et confirmer ou infirmer..

voici le projet, en MikroC , complet, avec listing
:
18F47J53_Test_asm.zip


Cohabitation ASM et C avec MikroC

MikroC_Cohabitation_ASM_C.jpg
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par paulfjujo le dim. 20 déc. 2015 17:10, modifié 1 fois.
Aide toi, le ciel ou FantasPic t'aidera

conversion hexa->ascii 16bits
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#6 Message par Guest » dim. 20 déc. 2015 17:09

le saut cent+2 évite la répétition du chargement du registre WREG
je vais voir ton fichier et je reviens

A+

conversion hexa->ascii 16bits
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#7 Message par Gérard » dim. 20 déc. 2015 17:13

Maï, si je comprends bien, hexa --> ascii, c'est pour afficher sur un LCD?
Il m'est arrivé d'utiliser un LCD sans ça.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

conversion hexa->ascii 16bits
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#8 Message par Jérémy » dim. 20 déc. 2015 17:14

Quand je dis que c'est du haut niveau, c’est vraiment du haut niveau . chapeau les mecs !.

J’ai déjà du mal à faire des mises à l’échelle !!
C'est en faisant des erreurs, que l'on apprend le mieux !!!

conversion hexa->ascii 16bits
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#9 Message par paulfjujo » dim. 20 déc. 2015 17:23

apres Cent1 + 1 , on est normalement déja apres le chargement de Wreg

En comparant les meme fonctionalites :

Code : Tout sélectionner


 _asm nop
;
     k=65535;             // DEcimal to Ascii
   WordToStr(k,CRam1);   //  3877 cycles
   _asm nop;


y a pas photo ,sur la vitesse d'execution Decimal to Ascii
222 contre 3877
par contre quid du chevauchement de pages !
ou changement de bank
Aide toi, le ciel ou FantasPic t'aidera

conversion hexa->ascii 16bits
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#10 Message par Guest » dim. 20 déc. 2015 17:27

Paul sur 18F les opcodes occupent bien 2 octets le mystère viens sûrement de nos compilateurs

En pièce joint le désassemblage, le bra cent1+2 nous revoie bien à 0x194

Mais tu vois je fais une bêtise tout cela pour éviter un label, pour qu'il soit portable,

Tient une idée, faire une fonction atoi ,merci Paul tu viens de m'occuper pour l’hiver :lol:

A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par Anonymous le dim. 20 déc. 2015 17:48, modifié 4 fois.


Retourner vers « Langage ASM »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 44 invités