Příznak parity
Příznak parity (anglicky parity flag), obvykle označovaný písmenem P nebo zkratkou PF, je bit v registru příznaků (stavovém slově) v počítačových procesorech některých architektur (např. x86), který indikuje, že počet jedničkových (nastavených) bitů v binární reprezentaci výsledku poslední operace je sudý.
Použití
Paritní bit se dříve používal pro jednoduché zabezpečení dat proti chybám.
Budeme předpokládat, že procesor nastavuje příznak parity pro indikaci sudé parity. Jestliže je výsledek poslední operace 26 (11010 binárně), bude příznak parity nastaven na 0, protože počet jedničkových (nastavených) bitů je lichý; jestliže výsledek je 102 (1100110 binárně), pak příznak parity bude nastaven na 1.
Procesory x86
V procesorech řady x86 se příznak parity podle parity nejméně významného bajtu výsledku a je nastaven, jestliže počet bitů nastavených na jedničku je sudý (neboli doplňuje počet nastavených bitů na lichý). Podle manuálu k procesoru Intel 80386 mění příznak parity následující instrukce:
- Všechny aritmetické instrukce;
- Instrukce porovnání (ekvivalentní s instrukcí odečítání bez uložení výsledku);
- Logické instrukce - XOR, AND, OR;
- Instrukce TEST (ekvivalentní s instrukcí AND bez uložení výsledku);
- Instrukce POPF.
Příznak parity se obvykle používá v podmíněných skocích, kde například instrukce JP návěští
provede skok na zadané místo v programu, pouze když je příznak parity nastaven; instrukce JNP návěští
naopak pouze pokud nastaven není.
Na procesorech řady x86 se v současnosti test parity používá především z důvodu, který nemá s paritou nic společného. Matematický koprocesor má čtyři podmínkové příznaky (C0 až C3), které ale nemohou být přímo testovány, a musí být proto nejdřív zkopírovány do registru příznaků; potom je C0 je umístěn v příznaku přenosu, C2 v příznaku parity a C3 v příznaku nuly[1]. Příznak C2 je nastaven například když se pomocí instrukce FUCOM porovnávají neporovnatelná hodnoty v pohyblivé řádové čárce (NaN nebo nepodporovaný formát).
Reference
V tomto článku byl použit překlad textu z článku Parity flag na anglické Wikipedii.
- ↑ Intel 64 and IA-32 Architectures Software Developer's Manual Volume 1: Basic Architecture [online]. January 2011. Dostupné online.