Article de reference

Drapeau de débordement

Dans les processeurs informatiques, l' indicateur de dépassement de capacité (parfois appelé indicateur V ) est généralement un bit unique dans un registre d'état système utilis...

Dans les processeurs informatiques, l' indicateur de dépassement de capacité (parfois appelé indicateur V ) est généralement un bit unique dans un registre d'état système utilisé pour indiquer quand un dépassement de capacité arithmétique s'est produit dans une opération, indiquant que le résultat du complément à deux signé ne correspondrait pas au nombre de bits utilisés pour le résultat. Certaines architectures peuvent être configurées pour générer automatiquement une exception sur une opération entraînant un dépassement de capacité.

Prenons un exemple : supposons que nous additionnions 127 et 127 en utilisant des registres à 8 bits. 127+127 est 254, mais en utilisant l'arithmétique à 8 bits, le résultat serait 1111 1110 binaire, qui est le codage en complément à deux de −2, un nombre négatif. Une somme négative d'opérandes positifs (ou vice versa) est un dépassement de capacité. L'indicateur de dépassement de capacité serait alors défini afin que le programme puisse être conscient du problème et l'atténuer ou signaler une erreur. L'indicateur de dépassement de capacité est donc défini lorsque le bit le plus significatif (considéré ici comme le bit de signe) est modifié en ajoutant deux nombres de même signe (ou en soustrayant deux nombres de signes opposés). Un dépassement de capacité ne peut pas se produire lorsque le signe de deux opérandes d'addition est différent (ou que le signe de deux opérandes de soustraction est le même).

Lorsque les valeurs binaires sont interprétées comme des nombres non signés , l'indicateur de dépassement n'a aucune signification et est normalement ignoré. L'un des avantages de l'arithmétique en complément à deux est que les opérations d'addition et de soustraction n'ont pas besoin de faire la distinction entre les opérandes signés et non signés. Pour cette raison, la plupart des jeux d'instructions informatiques ne font pas la distinction entre les opérandes signés et non signés, générant à la fois des indicateurs de dépassement (signé) et de retenue (non signé) à chaque opération, et laissant aux instructions suivantes le soin de prêter attention à celui qui les intéresse.

En interne, l'indicateur de débordement est généralement généré par un ou exclusif du report interne entrant et sortant du bit de signe.

Les opérations au niveau du bit (and, or, xor, not, rotate) n'ont pas de notion de dépassement signé, donc la valeur définie varie selon les architectures de processeur. Certains processeurs effacent le bit sans condition (ce qui est utile car les opérations au niveau du bit définissent l'indicateur de signe, et l'indicateur de dépassement d'effacement indique alors que l'indicateur de signe est valide), d'autres le laissent inchangé, et certains le définissent sur une valeur indéfinie . Les décalages et les multiplications permettent une valeur bien définie, mais elle n'est pas implémentée de manière cohérente. Par exemple, le jeu d'instructions x86 ne définit l'indicateur de dépassement que pour les multiplications et les décalages d'un bit ; les décalages multibits le laissent indéfini.

Sujets d'assemblage x86
Original text
Rate this translation
Your feedback will be used to help improve Google Translate