XA User Guide 3-7 3/24/97
If R7 (the stack pointer) is used as a normal indirect pointer, the data segment addressed will
always be segment 0 in System Mode and the DS segment in User Mode. More information
about the System and User modes may be found in sections 4 and 5.
The ESWEN (bit 7 of SSEL) can be programmed only in the System Mode to enable (1) or
disable (0) write privileges to data segment via ES register in the User Mode. This bit defaults to
the disabled (0) state after reset.
Addressing Modes
The XA provides flexible data addressing modes. Arithmetic, logic, and data movement
instructions generally support the following data memory access:
Indirect. A complete 24-bit data memory address is formed by an 8-bit segment register
concatenated with a 16-bit pointer in a register.
Direct. The first 1K bytes of data in each segment may be accessed by an address contained
within the instruction. Indirect with offset. A signed byte/word offset contained within the
instruction is added to the contents of a pointer register, and the result is concatenated with the
8-bit segment register DS to produce a complete 24-bit address.
Indirect with auto-increment. Indirect addresses are formed as above and the pointer register
contents are automatically incremented.
Figure 3.6 Data memory segmentation
400h
Data Memory
(only indirectly
addressed)
RAM
(directly and
indirectly
addressable)
Standard
bit-addressable
RAM
RAM
(directly and
indirectly
addressable)
0
FFFFh
1
64K Segments
3FFh
40h
3Fh
20h
1Fh
0
Directly
addressed
data
(1Kb per
segment)
255