Drapeau de parité - Parity flag

Dans les processeurs informatiques , l' indicateur de parité indique si le nombre de bits définis est impair ou pair dans la représentation binaire du résultat de la dernière opération. Il s'agit normalement d'un seul bit dans un registre d'état du processeur.

Par exemple, supposons une machine où un indicateur de parité défini indique une parité paire. Si le résultat de la dernière opération était de 26 (11010 en binaire), le drapeau de parité serait 0 puisque le nombre de bits définis est impair . De même, si le résultat était 10 (1010 en binaire), l'indicateur de parité serait 1.

processeurs x86

Dans les processeurs x86 , l'indicateur de parité reflète la parité uniquement de l' octet le moins significatif du résultat, et est défini si le nombre de bits définis de uns est pair (autrement dit, le bit de parité est défini si la somme des bits est même). Selon le manuel Intel 80386 , l'indicateur de parité est modifié dans la famille de processeurs x86 par les instructions suivantes:

  • Toutes les instructions arithmétiques;

Dans les sauts conditionnels, l'indicateur de parité est utilisé, où, par exemple, l'instruction JP saute vers la cible donnée lorsque l'indicateur de parité est positionné et l'instruction JNP saute si elle n'est pas définie. Le drapeau peut également être lu directement avec des instructions telles que PUSHF, qui pousse le registre des drapeaux sur la pile.

Une raison courante pour tester l'indicateur de parité est de vérifier un indicateur FPU non lié. Le FPU a quatre indicateurs de condition (C0 à C3), mais ils ne peuvent pas être testés directement, et doivent à la place être d'abord copiés dans le registre des indicateurs. Lorsque cela se produit, C0 est placé dans l' indicateur de retenue , C2 dans l'indicateur de parité et C3 dans l' indicateur zéro . L'indicateur C2 est défini lorsque, par exemple, des valeurs en virgule flottante incomparables ( NaN ou format non pris en charge) sont comparées aux instructions FUCOM.

Les références

  1. ^ "Volume 1 du manuel du développeur de logiciels d'architectures Intel 64 et IA-32: Architecture de base" . Janvier 2011. pp. 97–98.

Voir également