i
108 Tryby adresowania
; 3 S
w
t -j
** N
<rj) N
© |
O |
© |
a |
© |
O |
© |
O |
© |
o |
© |
o |
® |
o |
• |
o |
o* |
© |
«0 |
© |
© |
'T |
rt |
r> |
W |
04 |
H |
O |
o | |||
© |
_, |
© |
H |
© |
H |
© |
■H |
© |
© |
H |
© |
© |
•4 | ||
N |
N |
© |
© |
LP |
IP |
* |
m |
•0 |
01 |
04 |
*H |
H |
o |
o | |
a |
04 |
<X |
W |
X |
CM |
CM |
X |
C4 |
X |
04 |
a |
04 |
« |
04 | |
s |
N |
© |
© |
© |
© |
<y |
«r |
w |
10 |
01 |
N |
H |
o |
O | |
© |
ro |
a |
Ki |
ffi |
ro |
ca |
w |
© |
ro |
© |
K> |
© |
ro |
© |
KJ |
o- |
N |
© |
© |
© |
© |
<y |
o- |
ro |
H |
04 |
N |
** |
•4 |
o |
O |
w |
■fr |
o |
<r |
L> |
<r |
u |
<r |
o |
* |
o |
*r |
O |
<r |
o |
* |
N |
N |
© |
© |
© |
© |
<» |
T |
w |
W |
04 |
04 |
•H |
w |
o |
o |
O |
© |
o |
LP |
O |
© |
o |
© |
o |
© |
O |
© |
O |
© |
o |
© |
N |
r*» |
i£ |
© |
LP |
© |
<T |
* |
w |
rt |
w |
04 |
*• |
H |
o |
o |
U |
© |
Id |
© |
Id |
© |
Ui |
© |
Ul |
© |
u |
© |
Ul |
© |
u | |
N |
N |
© |
© |
© |
© |
f |
w |
ro |
04 |
04 |
M |
-4 |
o |
o | |
U |
0- |
U |
O* |
U |
N |
li. |
n |
u |
N |
Ifc |
fv |
u. |
N |
u. |
0- |
N |
« |
© |
© |
© |
<r |
T |
w |
ro |
01 |
04 |
-* |
H |
o |
o | |
A |
A |
/A |
/% |
A |
r\ |
lA |
iA |
r\ | |||||||
X |
z |
z |
z |
T |
X |
X |
X |
X |
i |
X |
X |
X |
I |
X |
X |
Ił' |
U |
O |
L> |
« |
<1 |
5* |
© |
0- |
© |
© |
* |
w |
CM |
H |
O |
04 |
N |
W |
W |
W |
CM |
"4 |
04 |
04 |
CM |
04 |
04 |
04 |
04 |
04 |
04 |
V |
V |
\J |
V |
w |
V |
v |
V* |
V |
SJ |
w |
w |
V | |||
N |
* |
© |
<r |
K) |
04 |
*4 |
O |
<0 |
© |
N |
© |
© |
* |
ro |
04 |
«r |
<f |
ty |
to |
ro |
ro |
ro |
ro |
W |
ro |
W |
31-H LjO 4* M
AA A A AA /A
II XI X Ob. ©N O HH HO OO O
vv w V
h v»m ©n o
LJ ■H N
>-4 Lii ■H H
ułytuoui *p*cj«ln« bitÓW
5£
- rejestr roboczy RO lub Rl; adres jest wtedy 8-bitowy, co pozwala na zaadresowanie tylko do 256 słów zewnętrznej pamięci danych; adres jest wysyłany przez port PO; port P2 może być wykorzystany jako wejście-wyjście (jeżeli nie ma zewnętrznej pamięci programu); dołączenie pamięci o większej pojemności jest w tym przypadku możliwe dzięki technice przełączania bloków (patrz punkt 3.1.2).
Adresowanie za pomocą DPTR i za pomocą RO lub Rl wykorzystuje się zwykle rozłącznie, pierwsze w systemach z zewnętrzną pamięcią programu i dużą zewnętrzną pamięcią danych, drugie - w systemach z małą pamięcią danych i bez zewnętrznej pamięci programu (zwłaszcza tam, gdzie port P2 spełnia funkcję wejścia-wyjścia). Jest też możliwe używanie rejestrów RO lub Rl, zamiennie z DPTR, do adresowania dużej zewnętrznej pamięci danych (również w systemach z zewnętrzną pamięcią programu). W takim przypadku konieczne jest wcześniejsze wpisanie do portu P2 bardziej znaczącego bajtu adresu. Robi się to za pomocą odpowiedniego rozkazu wejścia-wyjścia.
W rozkazach skoków możliwe jest adresowanie:
- bezpośrednie, z adresem 16-bitowym;
- bezpośrednie, z adresem 11-bitowym;
- względne, względem PC;
- pośrednie, sumą zawartości akumulatora i rejestru DPTR.
Bezpośredni adres 16-bitowy występuje w rozkazach skoku bezwarunkowego ŁJMP i skoku do podprogramu LCALL. Rozkazy te umożliwiają skoki w obrębie całej pamięci programu.
Rozkazy AJMP i ACALL mają 11-bitowy adres bezpośredni, wpisywany do bitów 0-10 licznika rozkazów. Dzięki tym rozkazom mogą być wykonywane skoki w obrębie jednej, bieżącej strony pamięci programu (o pojemności 2K), tzn. tej, na której jest umieszczony pierwszy bajt rozkazu następującego po rozkazie skoku.
Adres względny, podany w treści rozkazu jako 8-bitowy argument bezpośredni (przesunięcie), występuje w rozkazie SJMP i wszystkich rozkazach skoków warunkowych. Przesunięcie jest traktowane jako liczba ze znakiem w kodzie U2. Jest ono dodawane do licznika rozkazów (po pobraniu rozkazu), a zatem jest możliwy skok w obszarze pamięci o adresach od a — 128 do a + 127, gdzie a jest adresem pierwszego bajtu rozkazu następującego po rozkazie skoku.