28
4. Jak odczytywać i zapisywać dane
portów realizowane
instrukcji. ,est dynamicznie, tylko na czas wykonywanej
8 bard/.iej znaczących bitów adresu
rejestry DPH specjalne SFR
8 mniej znaczących bitów adresu
adres ^ 16-bitowy
Rys. 4-3 Adresowanie zewnętrznej pamięci RAM za pośrednictwem wskaźnikowego rejestru danych DPTR.
2. zawartością portu P2 i rejestru RO lub R1:
instrukcja: |
zapis binarny instrukcji: |
wykonywana operacja |
MOVX @R0,A |
1111 001 Ob |
(256*P2+R0>XDATA «- A |
MOVX A,@R0 |
1110 001 Ob |
A <- (256*P2+R0)XDATA |
MOVX @R1,A |
1111 001 lb |
(256»P2+R1)xdata <- A |
MOVX A,@R1 |
1110 001 lb |
A i- (256»P2+R1)xdata |
Składnia instrukcji jest trochę myląca. Wynika z niej bezpośrednio, że do adresowania zewnętrznej pamięci RAM używany jest tylko! jeden z rejestrów mikrokontrolera, RO lub Rl. Oba rejestry są rejestrami 8-bitowymi, a do zaadresowania pamięci wymagany jest] adres 16-bitowy. W takcie wykonywania jednej z czterecl przedstawionych instrukcji na liniach portu PO pojawia si^ zawartość rejestru RO lub Rl (8 mniej znaczących bitów adresu) alei stan portu P2 nie ulega zmianie (rysunek 4-4). Oznacza to, że przed wykonaniem instrukcji należy wpisać do portu P2 8-bardziejl
1 ' •'•• n-łminri 1? A \/t
4 Jak odczytywać i zapisywać dane...
29
Przykładowo do zapisu akumulatora A do komórki pamięci o adresie 3C58h należy wykonać poniższe instrukcje:
MOV R0,#58h ;R0 <- 58h
MOV P2,#3Ch ;P2 <- 3Ch
MOVX @R0,A ;(256*P2+R0) <- A
W każdej linii tego krótkiego programu pojawił się po znaku średnika (;) komentarz, który ma wyjaśnić, pomóc w zrozumieniu działania programu. W trakcie asemblacji wszystkie komentarze (od znaku średnika do końca wiersza) są pomijane.
Rys. 4-4 Adresowanie zewnętrznej pamięci RAM za pośrednictwem rejestru RO lub Rl i portu P2.
Oba przedstawione sposoby adresowania zewnętrznej pamięci RAM określane są mianem adresowania pośredniego. We wszystkich trybach takiego adresowania, za pośrednictwem jakiegoś rejestru, przed nazwą rejestru pojawia się znak Znak ten świadczy, że adres komórki pamięci podany jest w bezpośrednio po znaku występującym rejestrze, np:
• w instrukcji MOVX A,@DPTR adres komórki podany jest w rejestrze DPTR
• w rozkazie MOVX @Rl,A rejestr Rl zawiera część adresu komórki zewnętrznej pamięci RAM, 8-mniej znaczących bitów adresu Pozostałą część adresu, 8-bardziej znaczących bitów', zawiera port P2.