89366 Untitled29

89366 Untitled29



50


6. RAM czy SFR ?


5 KAM czy SI R ?


51


przy odczytywaniu bajtów ze stosu instrukcją POP należy zachować właściwą kolejność. Zmiana kolejności, jeśli jest nieświadoma, może prowadzić do niezamierzonych skutków, ponieważ odczytywane bajty pobierane są zawsze


ze szczytu stosu.

POP

lOh

;(10h) <- (SP), ;SP <- SP -1

(10h)=4Eh

POP

ACC

;ACC <-(SP), ;SP <- SP -1

ACC=0Ch

POP

B

;B <-(SP), ;SP <- SP -1

B=12h


Wskaźnik stosu SP ( Stack Pointer) - adres 81 h (rw-OOh).    f

Jest rejestrem, który adresuje stos - wydzielony logicznie fragment* wewnętrznej pamięci RAM. Stos używany jest do zapamiętywania ■ adresów powrotu z podprogramów wywoływanych programowo lub ■ sprzętowo (przez przerwania), przenoszenia zmiennych między® programami, czasowej ochrony rejestrów specjalnych i komórek® wewnętrznej pamięci RAM jeśli są one zmieniane w trakcie wykonywania® podprogramów.

Informacja wpisywana do stosu powoduje automatyczne zwiększeni® zawartości wskaźnika stosu o liczbę wpisywanych bajtów. Jeśli w trakcie I wykonanej instrukcji do stosu wpisywany jest jeden bajt to wskaźnik stos® zwiększany jest o jeden, jeśli dwa bajty to o dw'a. Odczyt, pobranie jednego lubi dwóch bajtów' ze stosu powoduje automatyczne zmniejszenie zawartość wskaźnika stosu o jeden lub o dwa. 8-bitowy wskaźnik stosu SP wskazuj ostatnią zajętą komórkę stosu. Zrealizowanie poniższego programu powoduje: MOV    SP,#2Fh    ;SP <— 2Fh,    wpisanie wartości początkowej

PUSH    lOh    ;SP <- SP + 1,

;(SP) <- (lOh)

;wpisanie do stosu zawartości komórki wewnętrznej

; pamięci RAM o adresie lOh, np. (10h)=12h PUSH ACC    ;SP <- SP + 1,

;(SP) <-ACC

;wpisanie do stosu zawartości akumulatora, np. A=0Ch PUSH B    ;SP+-SP + 1,

;(SP) +-B

;wpisanie do stosu zawartości rejestru B, np. B=4F.h

powoduje wpisywanie do stosu 3 bajtów zgodnie z kolejnością wprowadzania Sytuację tę przedstawia rysunek 6-5.

✓i

rl

33h

33h

33h

32h

32h

SP=32h

4Eh

31 h

SP=31h

OCh

31 h

OCh

SP=30h

12h

30h

12h

30h

12h

k

k

k

PUSH lOh    PUSH lOh    PUSH lOh

PUSH ACC    PUSH ACC

PUSH B

I? nrmi i r~~T UV\ i O hnitńw na stosie mikrokontrolera.

Jeśli rejestry i wybrana komórka pamięci RAM mają mieć przywrócone poprzednie wartości to po wykonaniu programu jedynie akumulator ma stan

początkowy.

Wskaźnik stosu SP jest inkrementowany, zwiększana jest jego zawartość, przed wykonaniem instrukcji PUSH (o jeden) i CALL (o dwa) oraz dekrementowany, zmniejszana jest jego zawartość, po pobraniu danych ze stosu w trakcie wykonywanych instrukcji POP (o jeden) i RET lub RETI (o dwa). Zerowanie procesora linią RST ustala wartość początkową wskaźnika stosu SP=7. Oznacza to, że przy przesianiu pierwszej danej do stosu następuje wpisanie jej do komórki o adresie 8, tzn. do rejestru R0 pierwszego banku rejestrów RB1 (rysunek 6-3). Zaw-artość wskaźnika stosu może być programowo zmieniana.

Ze względu na 8-bitową długość rejestru wskaźnika stosu SP i deklarację v\ wewnętrznej pamięci RAM należy kontrolować rozmiar stosu. Przy niekontrolowanym przesyłaniu danych do obszaru stosu możliwe jest zniszczenie danych przechowywanych w wyższych obszarach adresu pamięci RAM oraz w kolejnych bankach rejestrów rozpoczynając od banku RBO.

^ arytmetyce 8-bitowej dodaw-anie lub odejmowanie wykonywane jest tylko dla 8-bitów', co oznacza, że:

OFFh + 1=0,

0 - 1 =OFFh

Wskaźnikowy rejestr danych DPTR (Data Pointer Register) -

adresy: 82h, 83h (rw-OOh każdy).

bitowy wskaźnikowy rejestr danych DPTR złożony jest z dwóch itowych rejestrów, z. części bardziej znaczącej DPH (adres 83h) i części mn>ej znaczącej DPI. (adres 82h).


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ż
Untitled27 (2) 46 6. RAM czy SFR ? •    wymiana typu XCH A,Rn zastąpiona trzema
39789 Untitled28 48 6. RAM czy SFR ? 6 RAM cz> SFR
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
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
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
o gęstości objętościowej Po =1030 kg m3, styropian o Po =15+50 kgfm czy gazobeion o A. =220,-^-700

więcej podobnych podstron