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
Multiplication 16 bits par 16 bits
Bonjour Temps-x,
j'avais un peu oublié ces posts de F6FCO que je n'avais peut-être pas lu avec assez d'attention.
Si tu es curieux essaye son programme 16 bits avec
Plus sérieux, essaye le programme 32 bits avecl
C'est le FF qui perturbe, il peut y avoir un débordement quand on ajoute la retenue et il ne me semble pas que ce programme en tienne compte.
Mais, ayant très mal dormi, peut-être
Temps-x a écrit :Source du message on aurait pu utiliser la méthode de F6FCO décrite ICI
j'avais un peu oublié ces posts de F6FCO que je n'avais peut-être pas lu avec assez d'attention.
Si tu es curieux essaye son programme 16 bits avec
- variable1 = 0x4775
variable 2 = 0xFF87
Plus sérieux, essaye le programme 32 bits avecl
- variable1 = 0x11114775
variable 2 = 0x1111FF87
C'est le FF qui perturbe, il peut y avoir un débordement quand on ajoute la retenue et il ne me semble pas que ce programme en tienne compte.
Mais, ayant très mal dormi, peut-être
Multiplication 16 bits par 16 bits
Rebonjour,
Si, je n'ai pas du tout touché à l'algorithme, je me suis contenté d'ajouter un test d'arrêt qui, d'ailleurs, la sieste porte conseil, ne marchera pas. Le compteur que j'ajoute, ne doit pas être initialisé à 16 mais au rang (+/-1) du chiffre non nul du multplicateur
Temps-x a écrit :Source du message Dans ta proposition en post #29 on n'est plus dans le système égyptien.
Si, je n'ai pas du tout touché à l'algorithme, je me suis contenté d'ajouter un test d'arrêt qui, d'ailleurs, la sieste porte conseil, ne marchera pas. Le compteur que j'ajoute, ne doit pas être initialisé à 16 mais au rang (+/-1) du chiffre non nul du multplicateur
Multiplication 16 bits par 16 bits
Bonjour Temps-x,
Si, je n'ai pas touché à l'algorithme. Quand un humain l'applique, il sait quand il manipule le dernier chiffre significatif (celui de plus haut poids). Quand c'est un automate, il faut lui dire. d'ailleurs, je me suis trompé, ce n'est pas 16 qu'il faut donner comme valeur initiale à loop1 mais le rang du 1 de plus haut poids dans multiplicateur, donc le nombre de chiffres (binaires) significatifs. Les 0, après ne sont là que parce que les ordinateurs et microcontroleurs manipulent des groupes de bits (8, 16, ...). LesPic, 16 ou 18 : 8.
Temps-x a écrit :Source du message Dans ta proposition en post #29 on n'est plus dans le système égyptien.
Si, je n'ai pas touché à l'algorithme. Quand un humain l'applique, il sait quand il manipule le dernier chiffre significatif (celui de plus haut poids). Quand c'est un automate, il faut lui dire. d'ailleurs, je me suis trompé, ce n'est pas 16 qu'il faut donner comme valeur initiale à loop1 mais le rang du 1 de plus haut poids dans multiplicateur, donc le nombre de chiffres (binaires) significatifs. Les 0, après ne sont là que parce que les ordinateurs et microcontroleurs manipulent des groupes de bits (8, 16, ...). LesPic, 16 ou 18 : 8.
Multiplication 16 bits par 16 bits
Bonjour JJE, et tout le forum,
Pour reparler de ceci
On peut l'écrire différemment, si ça pose problème chez toi, pour test du 1
A+
Pour reparler de ceci
Code : Tout sélectionner
paire
movf multiplicateur+0,W
xorlw D'1'
btfsc STATUS,Z
return
On peut l'écrire différemment, si ça pose problème chez toi, pour test du 1
Code : Tout sélectionner
paire
movf multiplicateur+0,W
sublw D'1'
btfsc STATUS,Z
return
A+
Multiplication 16 bits par 16 bits
C'est amusant, quand j'ai rédigé le post #33, j'avais l'impression d'une redite, mais le #32 n'était pas là . Ce qui m'a fait radoter, avec quelques détails.
Ce n'est pas la manière d'écrire un test qui compte, si les deux manières sont "synonymes", mais le test
Pas de nouvelles de F6FCO que j'avais informé, par message privé, avoir parlé de lui, ou plutôt de l'un de ses sujets. Le pauvre, il doit être absorbé par ses travaux
Je crains que l'on ne trouve pas de solution à notre problème. Il n'attire pas les foules, il faut dire que c'est la saison des fruits rouges et que ceux qui ont la chance d'en récolter y passent beaucoup de temps pour les plaisirs de l'hiver, des petits enfants et des amis.
Temps-x a écrit :Source du message On peut l'écrire différemment, si ça pose problème chez toi, pour test du 1
Ce n'est pas la manière d'écrire un test qui compte, si les deux manières sont "synonymes", mais le test
Pas de nouvelles de F6FCO que j'avais informé, par message privé, avoir parlé de lui, ou plutôt de l'un de ses sujets. Le pauvre, il doit être absorbé par ses travaux
Je crains que l'on ne trouve pas de solution à notre problème. Il n'attire pas les foules, il faut dire que c'est la saison des fruits rouges et que ceux qui ont la chance d'en récolter y passent beaucoup de temps pour les plaisirs de l'hiver, des petits enfants et des amis.
Multiplication 16 bits par 16 bits
Bonjour, ici la foule :)
j'ai fait l'essai avec le programme du post #4
En multipliant 0x8745 par 0x0201, on a effectivement une sortie de routine prématurée, et on se retrouve avec 0x8745 comme produit, voir post #17.
Je ne vois qu'une seule explication, vous faites vos tests avec des versions différentes du programme. Je pense qu'il vaut mieux se passer un zip contenant un projet Mplab complet, plutôt que des extraits de programme plus ou moins modifiés.
j'ai fait l'essai avec le programme du post #4
En multipliant 0x8745 par 0x0201, on a effectivement une sortie de routine prématurée, et on se retrouve avec 0x8745 comme produit, voir post #17.
Je ne vois qu'une seule explication, vous faites vos tests avec des versions différentes du programme. Je pense qu'il vaut mieux se passer un zip contenant un projet Mplab complet, plutôt que des extraits de programme plus ou moins modifiés.
Multiplication 16 bits par 16 bits
Bonjour JJE, satinas, et tout le forum,
satinas pour avoir fait le test, ça me rassure
Et voici pour tout résumer, une vidéo qui est à voir en plein écran, non truqué
https://youtu.be/4GTpo-M7qaM
Au cas ou la vidéo serais pas très nette, je vous invite à la télécharger ICI
Voici le zip comme demandé par satinas
A+
satinas pour avoir fait le test, ça me rassure
Et voici pour tout résumer, une vidéo qui est à voir en plein écran, non truqué
https://youtu.be/4GTpo-M7qaM
Au cas ou la vidéo serais pas très nette, je vous invite à la télécharger ICI
Voici le zip comme demandé par satinas
A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Multiplication 16 bits par 16 bits
Bonsoir à tous les deux,
C'était vicieux
En programmation, tout est dans les détails.
Comment réalises-tu ces vidéo Temps-x, c'est ça qui m'a éclairé , on peut mettre du son ?
Merci à Satinas de s'être penché sur notre problème, on a tellement vite fait une bêtise dans un fichier source même à l'insu de son plein grès que c'était une bonne idée qu'on n'aura pas la peine de mettre en oeuvre, mais finalement, c'était un tout autre problème, beaucoup plus discret .
Fin d'un épisode haletant sur ce site je suis quand même content d'avoir une explication.
Au boulot Temps-x
C'était vicieux
et c'est bien ce que j'avais dit en gros caractèressatinas a écrit :Source du message En multipliant 0x8745 par 0x0201
. Mais Temps-x lui, a multiplié 0x0201 par 0x8745 se retranchant peut-être derrière l'excuse que la multiplication est commutative (a*b = b*a), ce qui est bien sûr fondé, oui mais voilà, pas l'algorithme mis en oeuvreJJE a écrit :Source du message As-tu essayé quelque chose comme H'xx01' comme multipliCATEUR ?
En programmation, tout est dans les détails.
Comment réalises-tu ces vidéo Temps-x, c'est ça qui m'a éclairé , on peut mettre du son ?
Merci à Satinas de s'être penché sur notre problème, on a tellement vite fait une bêtise dans un fichier source même à l'insu de son plein grès que c'était une bonne idée qu'on n'aura pas la peine de mettre en oeuvre, mais finalement, c'était un tout autre problème, beaucoup plus discret .
Fin d'un épisode haletant sur ce site je suis quand même content d'avoir une explication.
Au boulot Temps-x
Multiplication 16 bits par 16 bits
Bonsoir JJE, satinas, et tout le forum,
En. bah ........... je vois ce que tu veux dire maintenant, donc on va rectifier cela par
C'est pas fini
Avant de demander la modification du code à Jérémy, je vais l'optimiser, et te le proposer à contrôler.
Pour la vidéo, je sais parfaitement les manipuler, dans tout les formats, pour capturer les vidéos d'écran sous XP SP3 que je suis.
J'utilise CamStudio qui est une open source, donc complétement gratuit.
Tu peux trouver la dernière version sur le site officiel ICI, moi j'utilise la version 2
Oui, on peux enregistrer le son avec un micro, si tu sais manipuler VirtualDub, tu peux même rajouter de la musique de fond.
Et bien content d'avoir eut quelle comme toi en face, et ...... Tu vas pouvoir dormir ce soir
Je vais l'optimiser, mais pour l'instant, et par manque de temps je joins la modification du code dans un fichier zip ci-dessous
A+
JJE a écrit :Source du messageC 'était vicieux
En. bah ........... je vois ce que tu veux dire maintenant, donc on va rectifier cela par
Code : Tout sélectionner
paire
movf multiplicateur+0,W
xorlw D'1'
btfss STATUS,Z
goto A_suivre
movf multiplicateur+1,W
xorlw D'0'
btfsc STATUS,Z
return
A_suivre
C'est pas fini
Avant de demander la modification du code à Jérémy, je vais l'optimiser, et te le proposer à contrôler.
JJE a écrit :Source du message Comment réalises-tu ces vidéo Temps-x, c'est ça qui m'a éclairé , on peut mettre du son ?
Pour la vidéo, je sais parfaitement les manipuler, dans tout les formats, pour capturer les vidéos d'écran sous XP SP3 que je suis.
J'utilise CamStudio qui est une open source, donc complétement gratuit.
Tu peux trouver la dernière version sur le site officiel ICI, moi j'utilise la version 2
Oui, on peux enregistrer le son avec un micro, si tu sais manipuler VirtualDub, tu peux même rajouter de la musique de fond.
JJE a écrit :Source du messageFin d'un épisode haletant sur ce site
Et bien content d'avoir eut quelle comme toi en face, et ...... Tu vas pouvoir dormir ce soir
Je vais l'optimiser, mais pour l'instant, et par manque de temps je joins la modification du code dans un fichier zip ci-dessous
A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Multiplication 16 bits par 16 bits
Bonjour Temps-x,
li xorlw D'0' est inutile
Je dirais "à côté"
Merci pour les infos, j'avais oublié CamStudio, je crois même qu'il est installé sur ma machine, un vieil XP SP3 aussi.
Temps-x a écrit :Source du messageCode : Tout sélectionner
movf multiplicateur+1,W
xorlw D'0'
btfsc STATUS,Z
return
li xorlw D'0' est inutile
Temps-x a écrit :Source du message Et bien content d'avoir eut quelle comme toi en face
Je dirais "à côté"
Merci pour les infos, j'avais oublié CamStudio, je crois même qu'il est installé sur ma machine, un vieil XP SP3 aussi.
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 70 invités