Vlajka přetečení - Overflow flag

V počítačových procesorech příznak přetečení (někdy nazývané Vlajka V.) je obvykle jeden bit v registru stavu systému, který se používá k označení, kdy došlo k operaci aritmetického přetečení, což znamená, že podepsaný doplněk dvou výsledek by se nehodil do počtu bitů použitých pro operaci ( ALU šířka). Některé architektury mohou být nakonfigurovány tak, aby automaticky generovaly výjimku u operace vedoucí k přetečení.

Příkladem je to, co se stane, když přidáme 127 a 127 pomocí 8bitových registrů. 127 + 127 je 254, ale při použití 8bitové aritmetiky by byl výsledek binární 1111 1110, což je -2 v doplněk dvou, a tedy negativní. Negativním výsledkem z pozitivních operandů (nebo naopak) je přetečení. Poté by byl nastaven příznak přetečení, aby si program mohl být vědom problému a zmírnit jej nebo signalizovat chybu. Příznak přetečení se tak nastaví, když se nejvýznamnější bit (zde považovaný za bit znaménka) změní přidáním dvou čísel se stejným znaménkem (nebo odečtením dvou čísel s opačnými znaménky). K přetečení nikdy nedojde, když se znaménko dvou operandů sčítání liší (nebo znaménko dvou operandů odčítání je stejné).[1]

Interně je příznak přetečení obvykle generován znakem exkluzivní nebo interní nést do a mimo znakový bit. Jako znakový bit je stejný jako nejvýznamnější bit čísla považováno bez znaménka, příznak přetečení je „bezvýznamný“ a obvykle je ignorován, když jsou přidána nebo odečtena nepodepsaná čísla.

Příznak přetečení se obvykle mění všemi aritmetickými operacemi, včetně instrukcí pro porovnání (ekvivalent instrukce pro odečtení bez uložení výsledku). V mnoha architekturách procesorů je příznak přetečení vymazán bitovými operacemi (a, nebo, xor, ne), případně včetně posunů a rotací, ale může být také ponechán nedefinovaný těmito. Pokyny jako násobení a dělení často nechávají příznak nedefinovaný nebo ovlivněný posledním částečným výsledkem.

Na mnoha procesorech (nejen x86 ), instrukce pro sčítání a odčítání ovlivňují příznaky přenosu / vypůjčení i přetečení, i když obvykle bude zajímavý pouze jeden z nich, v závislosti na tom, zda operandy představují podepsaná nebo nepodepsaná čísla.[2]

Reference