16-bit signed index
(sign extended to 20 bits)
CPU Register Rn
20-bit signed add
Memory address
FFFFF
00000
Lower 64 KB
0FFFF
10000
Upper Memory
Rn.19:16 > 0
16-bit byte index
1 ... 15
19
16 15
0
S
Rn ± 32KB
S
Rn.19:0
xxxxh
Address
Space
F000h
1000h
PC
1103Ah
11038h
11036h
0479Ch
01778h
R5
R6
01778h
+F000h
00778h
Register
Before:
Address
Space
Register
After:
55D6h
11034h
xxxxh
F000h
1000h
PC
1103Ah
11038h
11036h
0479Ch
01778h
R5
R6
55D6h
11034h
xxxxh
xx45h
0077Ah
00778h
xxxxh
xx77h
0077Ah
00778h
32h
+45h
77h
src
dst
Sum
0479Ch
+1000h
0579Ch
xxxxh
xx32h
0579Eh
0579Ch
xxxxh
xx32h
0579Eh
0579Ch
Addressing Modes
125
SLAU367P – October 2012 – Revised April 2020
Copyright © 2012–2020, Texas Instruments Incorporated
CPUX
4.4.2.2
MSP430 Instruction With Indexed Mode in Upper Memory
If the CPU register Rn points to an address above the lower 64KB memory, the Rn bits 19:16 are used for
the address calculation of the operand. The operand may be located in memory in the range Rn ±32KB,
because the index, X, is a signed 16-bit value. In this case, the address of the operand can overflow or
underflow into the lower 64KB memory space (see
and
Figure 4-16. Indexed Mode in Upper Memory