Prob simple en assembleur
Fermé
mimi
-
7 mars 2001 à 17:44
Bouddha Messages postés 4 Date d'inscription mercredi 7 mars 2001 Statut Membre Dernière intervention 12 mars 2001 - 10 mars 2001 à 16:52
Bouddha Messages postés 4 Date d'inscription mercredi 7 mars 2001 Statut Membre Dernière intervention 12 mars 2001 - 10 mars 2001 à 16:52
A voir également:
- Prob simple en assembleur
- Tp corrigé assembleur 8086 - Forum Programmation
- Simple ocr - Télécharger - Bureautique
- Ouvrez ce fichier avec un éditeur de texte simple (bloc-notes, textedit, gedit, …) pour y découvrir le nom d'un objet. ✓ - Forum Études / Formation High-Tech
- Iphone 14 simple - Guide
- Simple file locker - Télécharger - Sécurité
1 réponse
Marden
Messages postés
1072
Date d'inscription
dimanche 11 février 2001
Statut
Membre
Dernière intervention
29 janvier 2006
209
7 mars 2001 à 18:40
7 mars 2001 à 18:40
La multiplication en binaire s'effectue comme en décimal, et d'autant plus simple que les chiffres possibles du multiplicateur sont "1" (on tient compte de la valeur) et "0" (on n'en tient pas compte, et on décale à gauche du nombre de "0" ; en décimal, on met des ".").
Application :
---------------- 1 0 0 1 0 0 1 1 = 147
---------------- 0 1 0 0 1 0 0 1 = 73
----------------------------------
---------------- 1 0 0 1 0 0 1 1 (a)
-------- + 1 0 0 1 0 0 1 1 - - - <== shift gauche 3 positions
----------------------------------
---------- 1 0 1 0 0 1 0 1 0 1 1 (b)
-+ 1 0 0 1 0 0 1 1 - - - - - - <== shift gauche 6 positions
----------------------------------
---- 1 0 1 0 0 1 1 1 1 0 1 0 1 1 (c) = 10731
Les résultats (a), (b), (c) sont les cumuls (accumulateur initialisé à 0) obtenus à chaque "1" du multiplicateur).
C'est de cette manière que fonctionne le circuit "hard" pour la multiplication d'entiers.
Application :
---------------- 1 0 0 1 0 0 1 1 = 147
---------------- 0 1 0 0 1 0 0 1 = 73
----------------------------------
---------------- 1 0 0 1 0 0 1 1 (a)
-------- + 1 0 0 1 0 0 1 1 - - - <== shift gauche 3 positions
----------------------------------
---------- 1 0 1 0 0 1 0 1 0 1 1 (b)
-+ 1 0 0 1 0 0 1 1 - - - - - - <== shift gauche 6 positions
----------------------------------
---- 1 0 1 0 0 1 1 1 1 0 1 0 1 1 (c) = 10731
Les résultats (a), (b), (c) sont les cumuls (accumulateur initialisé à 0) obtenus à chaque "1" du multiplicateur).
C'est de cette manière que fonctionne le circuit "hard" pour la multiplication d'entiers.
7 mars 2001 à 19:03
Mais on me demande une sortie en 32 bits...
Comment agencer ces instructions et quel en est le nbre pour que le prog soit optimisé ?
8 mars 2001 à 11:35
- faire A = 0
- boucle i de 0 à 15
si bit_multiplicateur[0] = 1 alors
décaler à gauche de "i" positions le multiplicande
cumuler dans A
fin_si
- fin_boucle
8 mars 2001 à 11:59
10 mars 2001 à 16:52
Maintenant, quand je regarde ton algorithme, je comprends mieux mais je ne sais pas quelles instructions utiliser en pratique.
C'est la boucle qui me dérange surtout...
C'est la mise en forme qui me pose des problèmes également
Si toi ou qqn d'autre ^pourrait m'en dire encore plus, ce serait vraiment sympa