DIVISION TRIPLE PRÉCISION POUR FAMILLE PIC 16F

 


C'est un segment de programme qui permet de réaliser une division triple précision pour un PIC de la famille 16F.
N est le numérateur, D le Dénominateur, R le Reste, le résultat de la division est affecté à la variable N.
L'opération est effectuée comme suit : N / D -> N, il reste R
Les nombres sont composés de 3 octets ( triple précision ).
La convention de notation pour définir un nombre est la suivante :
pour le nombre N ( 24 bits ), l'octet de poids fort est N2, l'octect de poids médian est N1, l'octet de poids faible est N0.

L'algorithme est classique pour une division binaire.
Je vous renvoie vers un lien qui le propose sous une forme d'animation.
Division

Ci-dessous le programme commenté.
La seule ' ruse ' dans le programme se trouve lors de la comparaison entre R et D.
Si R2 est différent de D2 ( Z=1 ) on saute à FComp pour tester le bit C, celui-ci n'étant pas modifié par le saut.
Si R2 = D2 et que R1 est différent de D1 ( Z=1 ) on saute à FComp pour tester le bit C, celui-ci n'étant pas modifié par le saut ...
Il n'y aura donc qu'un test du bit C lors de la comparaison du nombre.

 
Le programme source en assembleur Microchip pour une division triple précision, clic droit et enregistrer la cible sous ...
Le programme inclut un exemple de calcul pour vérification.
A remarquer que le contenu du numérateur est perdu lors de la division.
Il faudra donc le sauvegarder avant de réaliser l'opération s'il y en a besoin ultérieurement.
A partir de ce segment de programme, on peut en déduire un programme en double ou quadruple précision.
Accueil