Układ wykonawczy (EU)
Układ wykonawczy procesora 8086 zawiera szesnastobitowa ALU współpracująca Z rejestrami wskaźnikowymi oraz rejestrami wewnętrznymi. Wszystkie rejestry i magistrale wewnętrzne układu wykonawczego SA 16-bitowe. Układ wykonawczy nie ma bezpośredniego kontaktu z magistrala zewnętrzna. Rozkazy są do niej przekazywane z bloku rejestrów FIFO
(First-In First-Out) zwanego kolejka rozkazów. Kolejka rozkazów jest zapełniana za pośrednictwem układu sprzęgającego BIU. Wszystkie wektory adresowe generowane w obrębie układu wykonawczego są 16-bitowe, choć układ sprzęgający magistrali steruje dwudziestoma liniami adresującymi 1 MB przestrzeni pamięciowej. Zadanie układu wykonawczego jest dekodowanie i wykonywanie rozkazów gromadzonych w kolejce. W trakcie wykonywania rozkazów w układzie wykonawczym układ sprzęgający magistrali zewnętrznej otrzymuje zezwolenie na pobranie rozkazu następnego z pamięci programu. Gdy kolejnym bajtem w pamięci to dane, zostają one pominięte w operacji przesłania do kolejki rozkazów. Gdy zaś EU realizuje rozkaz skoku lub wywołania podprogramu, następuje wtedy wyzerowanie kolejki i pobranie za pośrednictwem BIU rozkazów z przestrzeni pamięci związanej z tym rozgałęzieniem.
Układ wykonawczy zawiera:
· 16-bitowa jednostkę arytmetyczno-logiczna,
· Układ sterowania z rejestrem rozkazów,
· Cztery 16-bitowe rejestry użytkownika: AX, BX, CX, DX;
· Lub cztery pary po 8 bitów: AL, AH, BL, BH, CL, CH, DL, DH (odpowiednio, L - młodszy, H - starszy bajt);
· Cztery 16-bitowe rejestry adresacji:
· SP (Stack Pointer) - wskaźnika stosu,
· BP (Base Pointer) - wskaźnika bazy,
· SI (Source Pointer) - indeksowy zrółda danych,
· DI (Destination Pointer) - indeksowy przeznaczenia danych,
· 16-bitowy rejestr wskaźników (rejestr flagowy).