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
alogorithme division 48bits/36bits
- Claudius
Passioné- Messages : 260
- Âge : 69
- Enregistré en : septembre 2015
- Localisation : ELANCOURT (78 - YVELINES)
- Contact :
Ok, Merci maï pour la réponse,
Je regarde avec attention mais, sauf erreur de ma part, mixer "Calculs Fixes", "Calculs Flottants" et "Résultats en Hexa" me semblent correspondre qu'à un besoin précis qui ne pourra malheureusement pas s'appliquer dans certains cas.
Maintenant, j'admire ta perspicacité sur la recherche d'un algo très performant dans ce cas précis au risque ne pas être "généraliste" avec un coût accru (à déterminer ) en termes de µCycles du µC.
Cordialement, A suivre...
--
Claudius
Je regarde avec attention mais, sauf erreur de ma part, mixer "Calculs Fixes", "Calculs Flottants" et "Résultats en Hexa" me semblent correspondre qu'à un besoin précis qui ne pourra malheureusement pas s'appliquer dans certains cas.
Maintenant, j'admire ta perspicacité sur la recherche d'un algo très performant dans ce cas précis au risque ne pas être "généraliste" avec un coût accru (à déterminer ) en termes de µCycles du µC.
Cordialement, A suivre...
--
Claudius
Enregistreur de traces GPS & Boussole GPS parlante (PIC & Arduino)
alogorithme division 48bits/36bits
maintenant si tu veux on peut travail sur une divison passe partout sur le meme alog qui est comme a l’école pour faire une simple division
voici le code
elle fait la meme division mais en 696 cycles pour 44 octets et cette algo est vraiment passe partout je vais faire une exemple pour un 16f et 18F
A+
voici le code
Code : Tout sélectionner
;********************************************************************
; division 48bits/32bits
;W10 W9 W8-> dividende
;W1 W0-> diviseur
;W3 W2-> reste
;W7 W6-> Quotient
;********************************************************************
Divi_48_par32:
CLR W2
CLR W3 ;reste
CLR W6 ;resultat
CLR W7
DO #47,9f
BCLR SR,#C
RlC W8,W8
RlC W9,W9
RlC W10,W10
RlC W2,W2
RlC W3,W3
SUB W2,W0,W4
SUBB W3,W1,W5 ;division quotient dans W4,W5
BCLR SR,#C
BRA LE,Div ; si trop grand? carry 0
EXCH W3,W5 ;si non transert reste
EXCH W2,W4 ;dans dividende
BSET SR,#C ;carry a 1
Div:
RLC W6,W6 ;W7:W6 partie entier
RLC W7,W7 ;W3:W2 partie dec
9:
NOP
RETURN
elle fait la meme division mais en 696 cycles pour 44 octets et cette algo est vraiment passe partout je vais faire une exemple pour un 16f et 18F
A+
alogorithme division 48bits/36bits
Accru pas tant que cela( 1198 cycles)304 octets pour une conversion FTOA 32bits .Je serai curieux de voir,en terme de cycles ,et occupation mem de la même conversion en C même avec une optimisation au max.car au plus je lis du C et plus, je vois du flottant partout. d’où ma curiosité a faire une tel conversion en ASMClaudius a écrit : avec un coût accru (à déterminer ) en termes de µCycles du µC.
en ASM il n'y a pas de notion fixe, flottant ,résultat en hexa.On n'est pas en langage évolué ou alors j'ai pas bien saisimixer "Calculs Fixes", "Calculs Flottants" et "Résultats en Hexa"
Allez plaisir de te lire
alogorithme division 48bits/36bits
alogorithme division 48bits/36bits
Bonjour
Bon j'ai encore gratté 224 cycles et je suis passé ENFIN sous la barre des 1000 cycles 974 cycles pour ma conversion FTOA 32bits, toujours avec -70000.9876543 a convertir , je suis resté sur le mémé algo .
je sais pugnace,
voici le bout de code de la division
j'ai travaille sur le préchargement du dividende,pas la peine de faire les cycles de division si le pre dividende(W2:W3) est < que le diviseur car le résultat est forcement zero et de ce fait de 48bits nous somme passé a 32 bit NBHEX+4 est a zéro pour la suite de la division
Allez bon dimanche
Bon j'ai encore gratté 224 cycles et je suis passé ENFIN sous la barre des 1000 cycles 974 cycles pour ma conversion FTOA 32bits, toujours avec -70000.9876543 a convertir , je suis resté sur le mémé algo .
je sais pugnace,
voici le bout de code de la division
Code : Tout sélectionner
CLR W2
CLR W3
CLR W6
CLR W7
MOV #0XE100,w0
MOV #0x05F5,W1 ;charge disiseur
MOV NBHEX+4,W2
DO #12,4f
BCLR SR,#C
RlC NBHEX
RlC NBHEX+2 ;precharge pre dividende
RlC W2,W2
4: RlC W3,W3
DO #18,3f
BCLR SR,#C
RlC NBHEX
RlC NBHEX+2
RlC W2,W2
RlC W3,W3
SUB W2,W0,W4
SUBB W3,W1,W5 ;division quotient dans W4,W5
BCLR SR,#C
BRA LE,fini ; si trop grand? carry 0
EXCH W3,W5 ;si non transfert reste
EXCH W2,W4 ;dans pre dividende
BSET SR,#C ;carry a 1
fini: RLC W6,W6 ;W7:W6 partie entier
3: RLC W7,W7 ;W3:W2 partie dec
j'ai travaille sur le préchargement du dividende,pas la peine de faire les cycles de division si le pre dividende(W2:W3) est < que le diviseur car le résultat est forcement zero et de ce fait de 48bits nous somme passé a 32 bit NBHEX+4 est a zéro pour la suite de la division
Allez bon dimanche
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 40 invités