Jednostka ALU

Jednostka arytmetyczno-logiczna (ang.arithmetick-logic unit) zawarta w mikrokomputerze 8048 działa na słowach 8-bitowych i może wykonywać operacje:

Arytmetyczne
-dodawanie i dodawanie z przeniesieniem
-zwiększanie i zmniejszanie o 1
-przesuwanie cykliczne w lewo i w prawo
-korekcja dziesiętna,

Logiczne
-iloczyn (AND), suma (OR), różnica symetryczna (EXOR)
-negacja (NOT)

Pierwszy argument powyższych operacji znajduje się w akumulatorze, a drugi -w wewnętrznej pamięci danych lub jako argument bezpośredni; wynik jest umieszczany w akumulatorze. W przypadku operacji logicznych OR i AND rolę akumulatora może również spełniać port BUS, P1 lub P2 - wówczas jeden z argumentów jest pobierany z portu, drugi jest argumentem bezpośrednim, a wynik jest przesyłany do portu.

Ośmiobitowy akumulator (ang. accumulator) - A - jest najważniejszym rejestrem dostępnym programowo. Jest on miejscem, z którego jest pobierany argument (lub jeden z argumentów) i do którego wpisuje się wynik wielu operacji wykonywanych przez jednostkę arytmetyczno-logiczną. Większość rozkazów przesłań służy do przesyłania danych między akumulatorem a pamięcią lub wejściem-wyjściem . Akumulator pełni także funkcję rejestru adresowego (wskaźnika danych) przy pobieraniu danych z pamięci programu oraz przy skoku pośrednim.

Słowo stanu programu ( ang. program status word) - PSW - jest 8-bitowym rejestrem, o budowie pokazanej na rys:

     +---+---+---+---+---+---+---+---+
     |C  |AC |F0 |BS | - |S2 |S1 |S0 |  PSW
     +---+---+---+---+---+---+---+---+

Poszczególne bity słowa stanu mogą być w różny sposób używane w programie. Ich znaczenie jest następujące:
-bity od 2 do 0 (S0,S1 S2) - wskaźnik stosu (ang. stack pointer) -SP
-bit 3 - nie używany, przy odczytywaniu ma wartość 1;
-bit 4 (BS) - wskaźnik zbioru rejestrów roboczych ( ang. working register bank switch), przy czym
BS = 0 wskazuje zbiór 0,
BS = 1 wskazuje zbiór 1,
-bit 5 (FO) - znacznik programowy,
-bit 6 (AC) - przeniesienie pomocnicze (ang. auxiliary carry), przeniesienie z bitu 3, znacznik ustawiany w wyniku wykonania operacji dodawania (rozkaz ADD), wykorzystywany przy korekcji dziesiętnej (rozkaz DAA);
-bit 7 (C) - przeniesienie (ang. carry) z najbardziej znaczącego bitu, znacznik ustawiany w wyniku wykonania operacji dodawania (rozkaz ADD) oraz przesunięcia (rozkazy RRC i RLC), może być też zerowany i negowany programowo.

Zawartość słowa stanu może być przesyłana do i z akumulatora. Jego cztery bardziej znaczące bity są automatycznie zapisywane na stosie przy skoku do podprogramu (rozkaz CALL) oraz przy przyjęciu przerwania. Powrót do programu głównego jest możliwy z odtworzeniem tych bitów ze stosu (rozkaz RETR) lub bez odtworzenia (rozkaz RET).

Dostępne są dwa 1- bitowe znaczniki programowe (ang. user controlled flags) - F0 i F1. Ich stan może być zerowany i negowany programowo, a testowany za pomocą skoków warunkowych. Służą do przekazywania informacji binarnej między różnymi fragmentami programu. Znacznik F0 wchodzi w skład słowa stanu procesora PSW - jest więc zapisywany na stosie podczas skoku do podprogramu i przyjęciu przerwania. Może być on odtwarzany przy powrocie.

Istnieją ponadto dwa zbiory 8- bitowych uniwersalnych rejestrów roboczych (ang. working register). Rejestry te są częścią wewnętrznej pamięci danych i zostaną omówione później.

Powrót