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 ---
- 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 ---
Modérateur : mazertoc
conversion hexa->ascii 16bits
-
Jérémy
Administrateur du site- Messages : 2722
- Âge : 44
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
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 ). 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 !
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 ). 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 !
conversion hexa->ascii 16bits
conversion hexa->ascii 16bits
conversion hexa->ascii 16bits
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
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
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
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..
Peux-tu verifier et confirmer ou infirmer..
voici le projet, en MikroC , complet, avec listing
:
Cohabitation ASM et C avec MikroC
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
:
Cohabitation ASM et C avec MikroC
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.
conversion hexa->ascii 16bits
conversion hexa->ascii 16bits
conversion hexa->ascii 16bits
conversion hexa->ascii 16bits
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
apres Cent1 + 1 , on est normalement déja apres le chargement de Wreg
En comparant les meme fonctionalites :
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
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
conversion hexa->ascii 16bits
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
A+
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
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 : Google [Bot] et 43 invités