Paritätsflagge - Parity flag

In Computer - Prozessoren die Paritäts Flag zeigt an, ob die Anzahl der gesetzten Bits ungerade oder gerade ist in der binären Darstellung des Ergebnisses der letzten Operation. Es ist normalerweise ein einzelnes Bit in einem Prozessorstatusregister.

Angenommen, ein Computer, auf dem ein gesetztes Paritätsflag eine gerade Parität anzeigt. Wenn das Ergebnis der letzten Operation 26 wäre (11010 in binär), wäre das Paritätsflag 0, da die Anzahl der gesetzten Bits ungerade ist . In ähnlicher Weise wäre das Paritätsflag 1 , wenn das Ergebnis 10 wäre (1010 in binär).

x86-Prozessoren

In x86- Prozessoren spiegelt das Paritätsflag nur die Parität des niedrigstwertigen Bytes des Ergebnisses wider und wird gesetzt, wenn die Anzahl der gesetzten Bits von Einsen gerade ist (anders ausgedrückt, das Paritätsbit wird gesetzt, wenn die Summe der Bits ist sogar). Gemäß dem Intel- Handbuch 80386 wird das Paritätsflag in der x86-Prozessorfamilie durch die folgenden Anweisungen geändert:

  • Alle arithmetischen Anweisungen;

Bei bedingten Sprüngen wird das Paritätsflag verwendet, wobei z. B. der JP-Befehl zum angegebenen Ziel springt, wenn das Paritätsflag gesetzt ist, und der JNP-Befehl springt, wenn er nicht gesetzt ist. Das Flag kann auch direkt mit Anweisungen wie PUSHF gelesen werden, wodurch das Flag-Register auf dem Stapel verschoben wird.

Ein häufiger Grund zum Testen des Paritätsflags ist das Überprüfen eines nicht verwandten FPU-Flags. Die FPU verfügt über vier Bedingungsflags (C0 bis C3), die jedoch nicht direkt getestet werden können und stattdessen zuerst in das Flagsregister kopiert werden müssen. In diesem Fall wird C0 in das Übertragsflag , C2 in das Paritätsflag und C3 in das Nullflag gesetzt . Das C2-Flag wird gesetzt, wenn z. B. unvergleichliche Gleitkommawerte ( NaN oder nicht unterstütztes Format) mit den FUCOM-Anweisungen verglichen werden.

Verweise

  1. ^ "Intel 64 und IA-32 Architekturen Software Entwicklerhandbuch Band 1: Grundlegende Architektur" . Januar 2011. S. 97–98.

Siehe auch