L'indicateur de demi-retenue, également appelé indicateur auxiliaire ou indicateur d'ajustement décimal, est un bit du registre d'état de nombreuses familles de processeurs (notamment l'Intel 8080, le Zilog Z80, le x86 et la série Motorola 68000). Il indique qu'une retenue ou un emprunt a été généré sur les quatre bits de poids faible de l'accumulateur à la suite de l'exécution d'une instruction arithmétique. Il est principalement utilisé dans les instructions arithmétiques en décimal codé binaire (DCB).

Usage Normalement, un processeur qui utilise l'arithmétique binaire (soit presque tous les processeurs modernes) additionnera deux octets de 8 bits en suivant les règles de l'addition binaire. Par exemple, l'addition de 25 et 48 donne 6D. L'addition est cependant plus compliquée pour les valeurs décimales codé binaire (DCB) où chaque bout de 4 bits représente un chiffre décimal. Par exemple, le résultat de l'addition des valeurs décimales 25 et 48, encodé 25 et 48 en DCB, donne 6D. Dans la mesure où le bout faible de cette valeur est un chiffre non décimal (D), il doit être ajusté en y ajoutant 06 pour donner le DCB corrigé 73, ce qui représente la valeur décimale 73. 0010 0101 25 + 0100 1000 48

0110 1101 6D, résultat intermédiaire + 0110 06, ajustement

0111 0011 73, résultat ajusté De même, additionner les valeurs DCB 39 et 48 donne 81. Ce résultat n'a pas de bout faible non décimal, mais il entraîne une retenue du chiffre de poids faible (les quatre bits de poids faible) dans le chiffre de poids fort (les quatre bits de poids fort). Le processeur l'indique en mettant l'indicateur de demi-retenue. Cette valeur est également corrigée par l'addition de 06 à 81 pour donner le DCB corrigé 87. 0011 1001 39 + 0100 1000 48

1000 0001 81, résultat intermédiaire + 0110 06, ajustement

1000 0111 87, résultat ajusté Enfin, si le résultat d'une addition est un chiffre de poids fort non décimal, alors 60 doit être ajoutée à la valeur pour donner bon DCB. Par exemple, l'addition de 72 et 73 donne E5. Dans la mesure où le chiffre de poids fort du résultat de cette somme est non décimal (E), y ajouter 60 donne le DCB corrigé 145. (Notez que le chiffre 1 en tête est en fait un bit de retenue.) 0111 0010 72 + 0111 0011 73

1110 0101 E5, résultat intermédiaire + 0110 60, ajustement

1 0100 0101 145, résultat ajusté

En résumant, pour pouvoir produire une valeur en DCB correcte : Si le résultat d'une addition binaire contient un chiffre de poids faible non décimal ou entraîne l'indicateur de demi-retenue, le résultat doit être corrigé par l'ajout de 06. Si le résultat d'une addition binaire contient un chiffre de poids fort non décimal, le résultat doit encore être corrigé par l'ajout de 60.

Voir aussi Décimal codé binaire Indicateur de retenue Indicateur de parité Registre d'état

Références

Catégorie:Arithmétique des ordinateurs