Moduł przerwań ma swoje rejestry kontrolne w przestrzeni MO z dodatkowym globalnym bitem odblokowującym przerwania w rejestrze statusowym SREG (opisany dalej). Wszystkie przerwania mają osobny wektor przerwania w tablicy wektorów przerwań. Przerwania mają priorytet zależny od pozycji wektora. Im niższy adres wektora przerwań, tym wyższy jest priorytet dla danego przerwania.
Rejestr SREG
Rejestr statusowy SREG zawiera informacje o rezultacie ostatnio wykonywanej operacji arytmetycznej. Informacja ta może być użyta przez instrukcje warunkowe sprawdzające stan wyniku poprzedniej operacji. Rejestr statusowy jest aktualizowany przez operacje wykonane przez ALU. Nie zawsze musi być zmieniana cała zawartość SREG. Zależnie od instrukcji, może to być np. tylko jeden bit. Dzięki wykorzystaniu tych właściwości możliwe jest tworzenie bardziej zoptymalizowanego kodu pod względem szybkości i objętości, (jak zmieniane są flagi, patrz „Opis instrukcji”).
Zawartość rejestru SREG nie jest automatycznie zapamiętywana przy wejściu w kod obsługi przerwania i odzyskiwana po jego wykonaniu. Należy to wykonywać programowo.
Rejestr SREG
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
[ |
i |
1 T |
1 H | |
1 S |
1 V |
1 N |
1 Z 1 |
1 C | |
Dostęp |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
Wartość początkowa |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
I - Globalne odblokowanie przerwań.
Flaga globalnych przerwań musi zostać być ustawiona aby odblokować przerwania. Kontrola indywidualnych przerwań jest realizowana w osobnych rejestrach kontrolnych. Jeśli globalna flaga I jest wykasowana (równa 0) to żadne z przerwań nie nastąpi, pomimo iż mogą być niezależnie odblokowane. Bit I jest automatycznie kasowany po wystąpieniu przerwania i z powrotem ustawiany instrukcją RETI aby umożliwić wystąpienie kolejnym przerwaniom. Globalny bit przerwań może być też zmieniany programowo instrukcjami SEI oraz CLI.
T - Przechowanie kopiowanego bitu.
Instrukcje kopiowania bitu BLD i BST używają T jako bit źródłowy lub docelowy do operacji bitowej.
H - Flaga przeniesienia połówkowego (half carry).
Flaga H pojawia się w wyniku niektórych operacji arytmetycznych (gdy nastąpi przeniesienie na 4 bit). Użyteczna w arytmetyce BCD.
S - Bit znaku S = N ® V.
Wartość bitu S jest zawsze równy operacji XOR między bitami V oraz N.
V - Flaga przepełnienia uzupełnienia do dwóch.
Flaga wpierająca arytmetykę „uzupełnienia do dwóch”.
N - Flaga wyniku ujemnego.