2. Struktura pamięci mikrokontrolera 13
transmisja szeregową reprezentuje dwa niezależne rejestry. Jeden do zapisu (rejestr nadawanego znaku), a drugi do odczytu (rejestr odebranego znaku). Odczyt zawartości rejestru 5BUF daje inną wartość niż wpisana.
Poniżej omówiono łącznie z adresami wybrane rejestTy specjalne (SFR) mikroprocesora:
• Akumulator (ACC • AccumuJator) - adres OEOH
Jest jednym z ważniejszych rejestrów procesora, ponieważ większość rozkazów wykorzystuje ten rejestr. Oznaczany jest w mnemonikach instrukcji jako ACC (symboliczny adres komórki rejestru specjalnego) lub skróconym symbolem A (nazwa rejestru).
• Rejestr B (B - Register) - adres OFOH
Rejestr specjalnego przeznaczenia w operacjach mnożenia i dzielenia, zawierający jeden z argumentów oraz bardziej znaczącą część wyniku mnożenia lub resztę w operacji dzielenia. W innych sytuacjach może być używany jako rejestr ogólnego przeznaczenia.
• Wskaźnik stosu (SP • Stack Pointer) - adres 81H
Stosem nazywany jest fragment wewnętrznej pamięci KAM adresowany zawartością specjalnego rejestru oznaczonego jako wskaźnik stosu (SP). Możliwy jest dostęp do bajtów bezpośrednio adresowanych przez wskaźnik stosu, znajdujących się na wierzchołku stosu, a nie w jego wnętrzu. Oznacza to, że możliwy jest jedynie dostęp do szczytu stosu. Sytuację tę można porównać do sterty książek ułożonych jedna na drugiej. Dokładając kolejną książkę umieszczamy ją na szczycie sterty. Zabierając książkę ze sterty zabieramy książkę leżącą na jej szczycie. Książki leżące we wnętrzu sterty nie są dostępne.
Informacja wpisywana do stosu (do wewnętrznej pamięci RAM adresowanej tym rejestrem) powoduje automatyczne zwiększenie zawartości wskaźnika stosu o liczbę wpisywanych bajtów. Jeśli w trakcie wykonanej instrukcji do stosu wpisywany jest jeden bajt to wskaźnik stosu zwiększany jest o jeden, jeśli dwa bajty to o dwa. Odczyt, pobranie jednego lub dwóch bajtów ze stosu powoduje automatyczne zmniejszenie zawartości wskaźnika stosu o jeden lub o dwa. 8-bitowy wskaźnik stosu (SP) wskazuje ostatnią zajętą komórkę stosu. Zrealizowanie programu:
;5P e= 3011, wpisanie wartości początkowej ;SPc=SP+ 1. (SP)c=(10H)
^wpisanie do stosu zawartości komórki wewnętrznej ' .pamięci RAM o adresie 10H. np. (10M)=12H 5P <= SP + 1, (SP) c= ACC
;wpisame do stosu zawartość akumulatora, np. A-OCH ^PcrSP + 1. (SP) <= B
.wpisanie do stosu zawartości rejestru U. np. D=4£H
MOV SP.#30H
PUŚH ACC
PUSH 0
Mikrokontroler 80(C)51 - programowanie
Adresounnie: Mnemonik:
Strukturo hntow: Cykle Znacz-
maszynowe: tuki-
bezpośrednie: CPL bit
1 U I 1 | 0 0 1 0~1 1
adres bitu
Opis działania:
Negacja logiczna wybranego bitu o adresie bit w wewnętrznej pamięci RAM.
Przykład ;
Generowanie impulsu na linii wyjściowej portu PI.1 o czasie trwania jednego cyklu maszynowego:
ANL Cbit
Logical And for Bil
Działanie:
Adresouunie:
bezpośrednie:
bezpośrednie:
ANL C.bit ANL C/bit
I 1 0 0 0 | 0 0 10
{_adres bitu_
2
2
Opis działania:
Iloczyn logiczny znacznika przeniesienia C i:
• wybranego bitu o adresie bit,
• negacji wybranego bitu o adresie bit.
Mikrokontroler 80(C)SI - programowanie