hello
pouvez-vous me dire c'est quoi l'interet du bit de la demie retenue auxilary flag AF!!!
je sais qu'il a une relation avec le BCD mais ce n'est pas vraiment clair
merci
hello
pouvez-vous me dire c'est quoi l'interet du bit de la demie retenue auxilary flag AF!!!
je sais qu'il a une relation avec le BCD mais ce n'est pas vraiment clair
merci
Bonjour,
Le bit de demi-retenue est l'état de la retenue à mi-chemin d'une opération, lors d'une propagation de la droite vers la gauche comme on le fait dans les opérations arithmétiques ordinaires telles qu'on les apprend à l'école.
C'est intéressant notamment lorsque le résultat d'une opération tient sur dans un champ deux fois plus grand que les opérandes initiales, ce qui est le cas de la multiplication par exemple.
C'est également intéressant lorsque l'on travaille au niveau de l'octet, parce que ce bit correspond à la retenue après quatre bits, ce qui en principe est inaccessible (pour ainsi dire aucun processeur moderne, à quelques exceptions près, ne travaille en quatre bit). Or, quatre bit, c'est exactement :
- Un chiffre hexadécimal (de 0 à F) ou
- Le nombre de bits occupé par un chiffre décimal en BCD.
La demi-retenue te permet donc d'examiner l'état de la retenue au niveau du chiffre.
merci obsidian, mais je ne vois pas l'interet de ce bit lors de la transmission des données
Le rôle de l'indicateur AF est fondamental pour le fonctionnement interne des instructions arithmétiques BCD "packée".
En effet une addition BCD se programme au moyen de deux instruction successives : ADD (ou ADC) suivi d'une instruction spécifique, DAA (ajustement décimal pour l'addition BCD).
Le processus est similaire pour la soustraction : SUB (ou SBB) suivi de DAS (ajustement décimal pour la soustraction BCD).
L'indicateur AF, conjointement avec l'indicateur CF font le lien entre les deux instructions successives.
L'instruction d'ajustement (DAA ou DAS) analyse le résultat de l'addition (ou soustraction) binaire précédente ainsi que les indicateurs AF et CF pour décider si elle doit ou non procéder à une correction pour donner un résultat BCD correct.
Hors cela, l'indicateur AF est effectivement de peu d'intérêt pour le programmeur. Pour s'en convaincre il suffit de constater qu'Intel, le concepteur du microprocesseur, n'a prévu aucune instruction de saut conditionnel (Jcc) exploitant directement cet indicateur.
Néanmoins un cas d'emploi pourrait être, par exemple, de détecter un dépassement de capacité pour des nombres BCD dont la limite serait fixée à un nombre impair de chiffres décimaux (pour un nombre pair, c'est CF qu'il faudrait tester).
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager