Vlajka přetečení - Overflow flag
![]() | tento článek potřebuje další citace pro ověření.Leden 2008) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
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]