2. Struktura pamięci mikrokontrolera 19
Stan portu 1*2 równy jest bardziej znaczącemu bajtowi wskaźnikowego rejestTU danych (DPTR), rejestrowi Dl*H, a port 1*0 mniej znaczącemu bajtowi rejestru DPTR, rejestrowi D1’L. Stan len przedstawiono na rysunku 2*9.
• portu P2 i rejestru R1:
MOV 1*2.#5AH ;P2 c= 5AH, adres segmentu (stTony)
MOV Rl.#8EH ;Rl <= 8EH, adres w obrębie segmentu (strony)
MOVX A,©Rl ;A <= (5AOOH+8EH)
Adres komórki zewnętrznej pamięci RAM zawarty jest w buforze portu 1*2 (część bardziej znacząca) i rejestrze R1 (część mniej znacząca). W trakcie wykonywania instrukcji MOVX A,®R1 stan portu P2 nie ulega zmianie, a zawartość rejestru Rl pojawia się na liniach portu PO (rysunek 2-10).
Rys. 2-10 Adresowanie zewnętrznej pamięć RAM za pośrednictwem portu P2 i rejestru Rl
MOV P2.M3H O O
P2 c= 43H. bardziej znaczący bajt adresu.
adres segmentu (strony)
MOV Ru.m)
MOV DPTR.ME68H MOV R7,#128
Skok:
R0 c= 0, mniej znaczący bajt adresu,
adres w obrębie segmentu (shrony) Dl*TR 4E68H, adres nowego obszaru R7 cz 128, R7 - licznik przesuwanych bajtów
MOVX A,<iK0 ;A <= (256*1*2 ♦ R0)xDATA
MOVX @DPTR,A ;(DPTR)XDATA «= A'
'V.
Mikrokonlioler fi Ot C151 - ptogramowaiwe
wewnątrz 2 kBajtowego bloku pamięa kodu programu, bity Ajq y adresu skoku zmieniają 3 najbardziej znaczące bity pierwszego bajtu rozkazu,
• 16-bitowy adres w rozkazie LCALLadr_16; modyfikowana jest cała zawartość licznika rozkazów (PC).
Zawartość rejestTu znaczników (PSW) nie jest zmieniana i nie jest wpisywana do stosu. Wskaźnik stosu (SP) wskazuje ostanią zajętą komórkę stosu.
Przykład:
W programie głównym stan licznika rozkazów PC = 23ACH i wskaźnika stosu SP a 2FH następuje wywołanie podprogramu Progi o adresie 0A21H:
Calładr:
LCALL Progi ;wywołanie podprogramu Progi
po wykonaniu rozkazu stan rejestrów procesora jest następujący:
• licznik rozkazów PC = 0A21H,
• wskaźnik stosu SP =* 31H,
• wewnętrzna pamięć RAM traktowana jako stos: (30H) = DACH. (3111) = 2311
RET, RET1- - Return
Dziabnie PC]5 g c= (SP)
SP<=SP-1 pc7..0 c= (SP)
Adresowanie: Mnemonik: Struktura bajtów: Cykle ćii.u .
___I_ maszynowe „ikt
pośrednie: |
RET |
0 0 1 |
0jo 0 1 0 | |
■> |
pośrednie: |
RETI |
| 0 (1 1 |
1 | 0 0 1 0 | |
2 |
Działanie:
Powrót z podprogramu do programu, z którego nastąpiło wywołanie podprogramu.
• pobranie ze stosu adresowanego wskaźnikiem stosu (SP) lh bitowego adresu następnego rozkazu, który ma być wykonany
Mikrokontroler 80(C)5I - programowanie