Rejestr flag procesora
Z Wikipedii
Rejestr flag procesora, rejestr statusu - wewnętrzny rejestr w procesorach, składająca się z bitów nazywanych flagami lub znacznikami, opisujących i kontrolujących stan procesora. Ustawienie wartości danej flagi zależy np. od trybu pracy procesora, wyniku ostatnio wykonanej operacji arytmetycznej, porównania, niekiedy może być także ustawiana z poziomu programu. Budowa rejestru statusu zależy od modelu programowego, według którego dany procesor jest zbudowany.
[edytuj] Przykładowe flagi rejestru statusu
- Z - wynik ostatniej operacji był zerem jeśli bit = 1
- S (lub N) - wynik ostatniej operacji był dodatni (S) lub ujemny (N, od ang. negative)
- C - nastąpiło przeniesienie, a więc wynik ostatniej operacji jest większy niż liczba dostępnych bitów (więc przykładowo do 254 dodamy 5)
- V - nastąpiło przepełnienie rejestru
- P - flaga parzystości, pokazująca czy ilość bitów w wyniku ostatniej operacji jest parzysta czy nieparzysta
[edytuj] Budowa rejestru flag w procesorach x86
W procesorach IA-32, zgodnych z architekturą x86 zaprojektowaną przez Intela w latach 70. XX wieku, na której opiera się zdecydowana większość współczesnych komputerów osobistych, rejestr flag procesora ma rozmiar 32 bitów i nosi nazwę EFLAGS. W procesorach x86 sprzed IA-32 (do procesora 80286 włącznie) miał rozmiar 16 bitów i nosił nazwę FLAGS; młodsza część rejestru EFLAGS jest tożsama z 16-bitowym rejestrem FLAGS.
W nowych procesorach 64-bitowych zgodnych z x86 (x86-64, EM64T) rejestr EFLAGS rozszerzono do 64 bitów i określono symbolem RFLAGS. Młodsze 32 bity tego rejestru są tożsame z rejestem EFLAGS, starsze 32 są zarezerwowane do wykorzystania w przyszłych wersjach procesorów (do tej pory nie przypisano im funkcji).