MULTIPLICATION
POUR FAMILLE PIC 16F |
|||||
|
|
|||||
Multiplication
simple précision : N (8 bits) x D (8 bits) = R (16 bits) |
|||||
![]() |
|
||||
Le
programme |
|||||
![]() |
|||||
Le
programme source en assembleur Microchip pour
une multiplication 8 bits x 8 bits, clic droit et enregistrer la cible
sous ... Le programme inclut un exemple de calcul pour vérification. A remarquer que le contenu du multiplicateur D0 est perdu lors de la multiplication. Il faudra donc le sauvegarder avant de réaliser l'opération s'il y en a besoin ultérieurement. |
|||||
Multiplication
double précision : N (16 bits) x D (16 bits) = R (32 bits) |
|||||
Tirée
de la documentation Microchip. La convention de notation pour définir les nombres est la suivante : pour le multiplicande N ( 16bits ), l'octet de poids fort est N1, l'octet de poids faible est N0, pour le multiplicateur D ( 16bits ), l'octet de poids fort est D1, l'octet de poids faible est D0, pour le résultat R ( 32 bits ), l'octet de poids fort est R3, l'octet de poids faible est R0,. L'algorithme est identique à celui de la multiplication simple précision, L'addition s'exécutant sur 16 bits et le décalage sur 32 bits. |
|||||
![]() |
|||||
Ligne 72 Ligne 73 Ligne 76 |
Il faut créer une variable supplémentaire, dont on utilisera un bit, afin de mémoriser une retenue temporaire. Si le résultat de l'incrémentation de R3 , ligne 71, est 00 alors il existe une retenue. Cette retenue sera perdue lors de l'addition, ligne 75. Il est donc nécessaire de la mémoriser dans une variable temporaire Flag. On teste si la retenue temporaire existe; si oui, elle est restituée ligne 77 et utilisée ligne 79 lors du décalage. |
||||
Le programme source en assembleur Microchip pour une multiplication 16 bits x 16 bits, clic droit et enregistrer la cible sous ... Le programme inclut un exemple de calcul pour vérification. A remarquer que le contenu du multiplicateur D est perdu lors de la multiplication. Il faudra donc le sauvegarder avant de réaliser l'opération s'il y en a besoin ultérieurement. |
|||||
Multiplication
: N (16 bits) x D (8 bits) = R (24 bits) Dans la même optique, une multiplication d'un nombre de 16 bits par un nombre de 8 bits, lorsqu'il est nécessaire d'optimiser le code. Le programme source en assembleur Microchip pour une multiplication 16 bits x 8 bits, clic droit et enregistrer la cible sous ... Le programme inclut un exemple de calcul pour vérification. A remarquer que le contenu du multiplicateur D est perdu lors de la multiplication. Il faudra donc le sauvegarder avant de réaliser l'opération s'il y en a besoin ultérieurement. |
|||||
| Les programmes
ont étés réalisés à coup de copier /
coller. Il se peut qu'une erreur se soit glissée dans les commentaires. Mise à jour : 01 Juin 2008 |
|||||