Untitled27 (2)

Untitled27 (2)



46 6. RAM czy SFR ?

•    wymiana typu XCH A,Rn zastąpiona trzema równoważnymi rozkazami ale z użyciem dodatkowego rejestru do przechowywania zmiennej, np. rejestru B:

MOV    B,A    ;B «- A, ochrona akumulatora A

MOV    A,Rn    ;A «- Rn

MOV    Rn,B    ;Rn B, czyli przesłanie akumulatora    A

•    rozkaz XCH A,@Ri można również zastąpić kombinacją trzech innych instrukcji, także z użyciem dodatkowego rejestru do przechowywania zmiennej, np. rejestru B

MOV

B,A

;B <- A, ochrona akumulatora A

MOV

A,@Ri

;A <- (Ri)

MOV

@Ri,B

;(Ri) <- B, czyli przesłanie akumulatora A

Podobna

w działaniu

do instrukcji XCH A,@Ri jest instrukcja

XCHD A,@Ri ale wzajemna wymiana dotyczy jedynie 4 mniej znaczących' bitów (eXCHange Digit) akumulatora A i komórki wewnętrznej pamięci RAM adresowanej rejestrem Ri (rejestr RO lub Rl). Instrukcja ta stosowana jest w operacjach z liczbami przedstawionymi w kodzie BCD. Graficznie działanie tej instrukcji ilustruje poniższy rysunek:



Przykłady zastąpienia instrukcji XCH i XCHD innymi instrukcjami dobitnie świadczą, że niezbędny jest pomocniczy wewnętrzny rejestr. Rejestr taki rzeczywiście istnieje w mikrokontrolerze ale nie jest dostępny dla programisty. Na rysunku 2-2 przedstawiającym schemat blokowy mikrokontrolera zaznaczone są dwa rejestry pomocnicze.

Cztery banki rejestrów RBO.. RB3 używane są zamiennie w różnych procedurach. Najczęściej roboczym bankiem jest bank RBO. Inne używane są w zależności od potrzeb, np: przy transmisji szeregowej bank RB1, wyświetlaniu danych na polu odczytowym - bank RB2, a obsługą przetwornika zajmują się rejestry w banku RB3.

Zmiana banku rejestrów jest najszybszym sposobem ochrony zawartości rejestrów przy wywołaniach podprogramów, a w szczególności w procedurach obsługi przerwań.

6.2 Co zawierają rejestry specjalne SFR ?

Jak już wcześniej stwierdzono, rejestry specjalne SFR są odbiciem wszystkich wewnętrznych układów mikrokontrolera. Konstruktorzy mikrokontrolera 8051 przewidzieli miejsce na 128 rejestrów specjalnych. Rejestrów adresowanych tylko bezpośrednio, o adresach od 80h do OFFh. W miarę upływu czasu, rozwoju nowych technologii i potrzeb użytkowników pojawiły się nowe mikrokontrolery ze zmienionymi lub całkiem nowymi układami wewnętrznymi. Każdy nowy element zmieniał tylko znaczenie kolejnych komórek rejestrów specjalnych. Z 21 rejestrów specjalnych w mikrokontrolerze 8051 do 42 w 80515/535. Lista rozkazów, sposoby adresowania pozostały niezmienione.

Adresy i symbole wszystkich rejestrów' specjalnych w mikrokontrolerach 8051, 8052 i 80515/535 pokazano na rysunku 6-4. Rejestry, których funkcje są zmienione lub całkowicie nowe rejestry zostały zacieniowane zgodnie z oznaczeniami pod rysunkiem.

Z rysunku 6-4 widać, że nie wszystkie rejestry są zagospodarowane, np. o adresach 0E1H..0EFH. Wolne rejestry nie mogą być jednak wykorzystane w programach jako dodatkowa komórki wewnętrznej pamięci RAM. Tylko niektóre z rejestrów mogą pełnić taką funkcję. O tym decyduje producent mikrokontrolera oraz programista. Analizując program wiadomo jakie jest wykorzystanie układów peryferyjnych, które mogą zmieniać w trakcie swojej pracy zawartość tych rejestrów. Dla przykładu rejestr SBUF związany z transmisją szeregową reprezentuje dwa niezależne rejestry. Jeden do zapisu (rejestr nadawanego znaku), a drugi do odczytu (rejestr odebranego znaku). Odczyt zawartości rejestru SBUF daje inną wartość niż wpisana.

Poniżej omówiono, łącznie z adresami, wybrane rejestry specjalne SFR mikrokontrolerów' rodziny '51. Oznaczenie rw-OOh sygnalizuje:

-► możliwość odczytu zawartości rejestru (read),

-> możliwość wpisu (write) innych wartości zgodnie z wymaganiami programu,

-» zawartość rejestru po sprzętowym zerowaniu mikrokontrolera, OOh.

Akumulator (ACC - Accumulator) - adres OEOh (rw-OOh).

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).


Wyszukiwarka

Podobne podstrony:
Untitled30 52__6. RAM czy SFR ? Rejestr ten stosowany jest do adresowania zewnętrznej pamięci danych
83021 Untitled31 (2) 54 6. RAM czy SFR ? Z instrukcjami bitowymi związane są również instrukcje umoż
39789 Untitled28 48 6. RAM czy SFR ? 6 RAM cz> SFR
89366 Untitled29 50 6. RAM czy SFR ? 5 KAM czy SI R ? 51 przy odczytywaniu bajtów ze stosu instrukcj
Untitled24 (2) * 6. RAM czy SFR ? Wewnętrzna pamięć RAM w mikrokontrolerze 8051 liczy
66821 Untitled26 45 44 6. RAM czy SFR ? (y RAM czy SFR ? •    podanie jego symbolu i
Untitled32 56 6. RAM czy SKR 0 8. Do czego służą rejestry: 56 6. RAM czy SKR 0 a) A d) SP b) B e) DP
Untitled32 56 6. RAM czy SKR 0 8. Do czego służą rejestry: 56 6. RAM czy SKR 0 a) A d) SP b) B e) DP
Untitled25 (2) 42 6. KAM czy SFR ? MOV    R0,#80h    ;R0 *- 80h M
Untitled32 56 6. RAM czy SKR 0 8. Do czego służą rejestry: 56 6. RAM czy SKR 0 a) A d) SP b) B e) DP

więcej podobnych podstron