Indicateur de débordement
Dans un processeur d'ordinateur, l'indicateur de débordement (parfois noté V) est généralement un bit du registre d'état indiquant qu'un débordement arithmétique a eu lieu lors d'une opération, ce qui implique que le résultat signé d'un complément à deux ne rentrera pas dans le nombre de bits (la largeur) de l'UAL. Certaines architectures peuvent être configurées pour générer automatiquement une exception quand une opération entraîne un débordement.
Grossièrement, l'indicateur de débordement pourrait être considéré comme une sorte de complément à deux de l'indicateur de retenue, mais l'utilisation typique est très différente.
Un exemple illustratif est ce qui se passe si l'on additionne 127 et 127 en utilisant des registres en 8 bits. 127+127 donne 254, mais en utilisant de l'arithmétique en 8 bits, le résultat binaire serait 1111 1110
, soit -2 en complément à deux, et donc négatif. Un résultat négatif d'opérandes positifs (ou vice versa) est un débordement. L'indicateur de débordement est alors mis de sorte que le programme puisse être conscient du problème et atténuer son effet ou remonter une erreur. L'indicateur de débordement est donc mis lorsque le bit de poids fort (ici le bit de signe) est modifié suite à l'addition de deux nombres de même signe (ou la soustraction de deux nombres de signes opposés). Le débordement ne se produit jamais quand le signe des deux opérandes d'une addition sont différents (ou le signe des deux opérandes d'un soustraction sont identiques).
En interne, l'indicateur de débordement est généralement généré par un ou exclusif de la retenue interne à l’intérieur et à l’extérieur du bit de signe. Dans la mesure où le bit de signe est le même que le bit de poids fort d'un nombre considéré comme non signé, l'indicateur de débordement est "vide de sens" et normalement ignorés lors de l'addition ou de la soustraction de nombres non signés.
L'indicateur de débordement est généralement modifiées par l'ensemble des opérations arithmétiques, y compris les instructions de comparaison (équivalent à une instruction de soustraction sans stocker le résultat). Dans de nombreuses architectures de processeur, l'indicateur de débordement est effacé par les opérations bit à bit (AND
, OR
, XOR
, NOT
), incluant éventuellement les décalages et rotations, mais ces opérations peuvent également laissé l'indicateur de débordement indéfinies. Les Instructions comme multiplier et diviser laissent souvent l'indicateur indéfini, ou modifié par le dernier résultat partiel.
Voir aussi
[modifier | modifier le code]Références
[modifier | modifier le code]Explication très détaillée des techniques d'évaluation des indicateurs de débordement et de retenue.