Flagi 8086

             Procesor  8086  ma  dziewięć  1-bitowych  wskaźników  (bitów  flagowych),  którychwartości są zapisywane w 16-bitowym rejestrze flagowym. Rozmieszczenie bitów flagowych pokazano na rys.2.3.

 

 

                        Wskaźniki można podzieli na dwie grupy: znaczniki stanu wewnętrznego i znaczniki rozkazów sterujących. Do znaczników stanu wewnętrznego zaliczamy:

C (Carry) - przeniesienie;  wartość  1  na  tej  pozycji  oznacza  przeniesienie  zewnętrzne dla operacji arytmetycznych całkowitoliczbowych,

P (Parity) - parzystość; wartość 1 na tej pozycji oznacza parzysta liczbę jedynek wyniku dowolnej operacji,

A (Auxiliary-Carry) - przeniesienie połówkowe; wartość 1 na tej pozycji oznacza obecność przeniesienia po czwartym bicie rezultatu operacji arytmetycznych BCD,

Z (Zero) -  zero; wartość 1 na tej pozycji oznacza rezultat 0 operacji,

S (Sign) -  znak;  wartość 1 sygnalizuje ujemny wynik operacji arytmetycznej całkowitoliczbowej,

O (Over-flow) - przepelnienie;1 na tej pozycji oznacza zbyt dużą liczbę dla wyniku operacji arytmetycznej całkowitoliczbowej.

Do znaczników sterujących zaliczamy:

T (Trap) - jest znacznikiem pracy krokowej procesora, gdy T = 1 wówczas procesor przechodzi do pracy krokowej, tzn. następuje zatrzymanie po każdym rozkazie, wywoływane jest przerwanie o numerze 1 a CPU przesyła zawartość rejestru flagowego na stos (jak dla obsługi przerwań). W pamięci wskazywanej przez sumie zawartości IP oraz CS dla INTn =1 należy wpisać program obsługi tego zadania przerwania (np. badanie stanu przycisku).

I (Interrupt enable) - znacznik wskazujący, czy wejście przerwania maskowanego

INTR   jest odblokowane (I = 1), czy zablokowane (I = 0),

D (Direction)  - znacznik sterowania kierunkiem zmian zawartości rejestrów SI i DI:

- dla D = 0, zawartość SI i DI zwiększa się o 1 przy operacjach 8- bitowych a o 2 przy operacjach 16 - bitowych,

- dla D = 1, zmniejsza się zawartość tych rejestrów o 1 przy operacjach

8 - bitowych  i o 2 przy operacjach 16 - bitowych.

            Znaczniki stanu wewnętrznego są ustawiane w wyniku realizacji określonych operacji arytmetycznych lub logicznych procesora, natomiast znaczniki sterujące rejestru wskaźników są ustawiane za pomocą odpowiednich rozkazów sterujących procesora w celu wymuszenia określonego trybu pracy.