Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : division sur 32 bits [ Archives / Forum68xxx ] (biboucat)

dimanche 8 mai 2005 à 23:36:29 | division sur 32 bits

biboucat

Bonsoir tout le monde, je suis à la recherche dans le cadre d'un projet d'un algorithme permettant de faire des divisions avec un diviseur et dividende eux meme sur 32 bits. Je pense que beaucoup de gens ont été confronté à ce probleme, donc quelqu'un aura peut etre la solution.

Merci bcp ca me permettra d avancer dans mon projet.


lundi 9 mai 2005 à 18:13:02 | Re : division sur 32 bits

ShareVB

salut,

ben, il faut utiliser l'instruction DIV...sinon, il existe un bouquin
[ Lien ]

ShareVB

lundi 9 mai 2005 à 19:55:46 | Re : division sur 32 bits

biboucat

Oui mais le pb est que le motorola 68000 gere que des registres 32 bits max donc pour l instruction div, il est spécifié que ca marche uniquement sur un word: le diviseur doit avoir au maximum 16 bits et la valeur a diviser peut elle etre sur 32 bits


lundi 9 mai 2005 à 20:21:07 | Re : division sur 32 bits

vecchio56

Administrateur CodeS-SourceS
Si le but est seulement pédagogique tu as un algorithme très simple:

on calcule a / b:

quotient := 0;
ttq(a > b) faire
  quotient++;
  a := a-b;
fait
le reste de la division est dans a

Par contre au niveau de la performance c'est bien entendu médiocre




lundi 9 mai 2005 à 21:31:02 | Re : division sur 32 bits

biboucat

Bon pour la multiplication j'ai trouvé comment faire. En fait comme je sais qu'on va multipler par 100 le registre de 32 bits, je decompose en puissance de 2, je fais les décalages correspondants(100 = 64 +32 +4) de 6 5 et 2 et j additionne le tout.
On obtient donc :

Ici la valeur a multiplier par 100 est dans D1

MOVE.L D1,D2
MOVE.L D2,D3
MOVE.L D3,D4
LSL
.L #6,D2 *multiplication par 64 
LSL
.L #5,D3 *multiplication par 32
LSL
.L #2,D4 *multiplication par 4
ADD.L D4,D3
ADD.L D3,D2 *D2 contient le resultat de la multiplication par 100
 
Ca m a l'air assez efficace car on fait la multiplication en 8 instructions mais sans doute peut on mieux faire... Quant a la division j ai pensé a la soustraction mais c vraiment trop barbare comme methode, je vais voir si je peux trouver un truc un peu plus optimisé. J'espere que cette technique pour la multiplication pourra aider des gens ^^




Cette discussion est classé dans : projet, division, bits


Répondre à ce message

Sujets en rapport avec ce message

Division par 5 avec PIC [ par lionel57 ] Bonjour,Je suis débutant dans la programmation des PIC et j'aurait besoin d'aide pour élaborer une routine qui permet de diviser une varaible N de 16 Quel assembler choisir? [ par yandre100 ] Bonjour tout le monde. Je dois me mettre a l'assembler. J'ai un ordinateur portable pentium 4 avec windows xp installe.Peut on cataloguer les progra Compteur de passage... [ par Raptor1203 ] Bonjour je suis electronicien de formation mais j'ai malheureusement oublié le langage PIC mais j'ai pour projet de realiser un compteur de passage c' help me [ par theyoupione ] j'ai écri un ptit prog dont voici un extrait permettant d'envoyer un octet vers liaison série mais j'ai un pb lors de la compilation avec mplabl'erreu Aide nombre en asm 8086 16 bits [ par Maureka ] je suis debutant en asm intel 16 bits.j'ai un projet à réaliser et cela consiste à faire un programme qui affiche la liste des nombres premiers compri projet de fin d'année [ par jorus1212 ] Je suis en projet et je doit developpé un programme qui absorbe les données d'un pc par liaison rs232 de façon asynchronne et les stocke dans le buffe % sur 64 bits [ par vecchio56 ] Je fait un mul, donc j'obtiens un nombre en 2 parties dans eax et edx, soit n sur 64 bits.J'aimerais savoir comment je peux faire pour obtenir n % x e Recherche partenariat projet LCD 4 lignes + générateur de txt. [ par mrbbp ] Bonjour à vous.Je suis graphiste....Je développe un peu dans des langages haut niveau (je crois que c'est comme ça qu'on dit) : Action Script, Lingo.J Comment déclarer un champs de bits(BITFIELD ou RECORD) en NASM ? [ par fidro ] Bonjour, Aprés avoir longtemps programmé avec MASM et TASM, j'ai décidé de passer à NASM.Mais voilà, il y a quelques différences ...Et pour l'instant Microbes Os alternatif [ par SystemOfAXav ] Salut, Microbes est un projet d'OS alternatif que j'ai démarré il ya quelques jours . Dont le but est d'apprendre le fonctionnement du PC et d'un syst


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,203 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.