MC80F0304/08/16
44
November 4, 2011 Ver 2.12
D500FA
LDA
!Y
Indirect Addressing
Direct page indirect
→
[dp]
Assigns data address to use for accomplishing command which
sets memory data (or pair memory) by Operand.
Also index can be used with Index register X,Y.
JMP, CALL
Example; G=0
3F35
JMP
[35H]
X indexed indirect
→
[dp+X]
Processes memory data as Data, assigned by 16-bit pair memory
which is determined by pair data [dp+X+1][dp+X] Operand plus
X-register data in Direct page.
ADC, AND, CMP, EOR, LDA, OR, SBC, STA
Example; G=0, X=10
H
1625
ADC
[25H+X]
Y indexed indirect
→
[dp]+Y
Processes memory data as Data, assigned by the data [dp+1][dp]
of 16-bit pair memory paired by Operand in Direct page
plus Y-
register data.
ADC, AND, CMP, EOR, LDA, OR, SBC, STA
Example; G=0, Y=10
H
1725
ADC
[25H]+Y
Absolute indirect
→
[!abs]
The program jumps to address specified by 16-bit absolute ad-
dress.
JMP
Example; G=0
D5
0F100H
data
→
A
þ
~
~
~
~
data
0FA55H
55H=0FA55H
Ã
FA
0F102H
00
0F101H
À
0A
35H
jump to
þ
~
~
~
~
35
0FA00H
E3
36H
À
3F
0E30AH
NEXT
~
~
~
~
address 0E30AH
05
35H
0E005H
~
~
~
~
25
0FA00H
E0
36H
16
0E005H
data
~
~
~
~
Ã
A + data + C
→
A
25 + X(10) = 35H
þ
À
05
25H
Y(10)
þ
~
~
~
~
25
0FA00H
E0
26H
À
17
0E015H
data
~
~
~
~
Ã
= 0E015H
A + data + C
→
A