16-bit signed
PC index
Program
counter PC
16-bit signed add
0
Memory address
FFFFF
00000
Lower 64KB
0FFFF
10000
PC.19:0
Lower 64KB
PC.19:16 = 0
16-bit byte index
0
19 16 15
0
S
Addressing Modes
130
SLAU367P – October 2012 – Revised April 2020
Copyright © 2012–2020, Texas Instruments Incorporated
CPUX
4.4.3 Symbolic Mode
The symbolic mode calculates the address of the operand by adding the signed index to the PC. The
symbolic mode has 3 addressing possibilities:
•
Symbolic mode in lower 64KB of memory
•
MSP430 instruction with symbolic mode addressing memory above the lower 64KB of memory
•
MSP430X instruction with symbolic mode
4.4.3.1
Symbolic Mode in Lower 64KB
If the PC points to an address in the lower 64KB of the memory range, the calculated memory address
bits 19:16 are cleared after the addition of the PC and the signed 16-bit index. This means the calculated
memory address is always located in the lower 64KB and does not overflow or underflow out of the lower
64KB memory space. The RAM and the peripheral registers can be accessed this way and existing
MSP430 software is usable without modifications as shown in
Figure 4-19. Symbolic Mode Running in Lower 64KB
Operation:
The signed 16-bit index in the next word after the instruction is added temporarily to
the PC. The resulting bits 19:16 are cleared giving a truncated 16-bit memory
address, which points to an operand address in the range 00000h to 0FFFFh. The
operand is the content of the addressed memory location.
Length:
2 or 3 words
Comment:
Valid for source and destination. The assembler calculates the PC index and
inserts it.
Example:
ADD.B EDE,TONI ;
This instruction adds the 8-bit data contained in source byte EDE and destination
byte TONI and places the result into the destination byte TONI. Bytes EDE and
TONI and the program are located in the lower 64KB.
Source:
Byte EDE located at address 0579Ch, pointed to by PC + 4766h, where the PC
index 4766h is the result of 0579Ch – 01036h = 04766h. Address 01036h is the
location of the index for this example.
Destination:
Byte TONI located at address 00778h, pointed to by PC + F740h, is the truncated
16-bit result of 00778h – 1038h = FF740h. Address 01038h is the location of the
index for this example.