
High-Speed Microcontroller User’s
Guide: Network Microcontroller
Supplement
132
24-Bit Contiguous Addressing Mode
When the AM1 bit is set, the DS80C400 operates in its 24-bit contiguous addressing mode. This addressing mode supports a full 24-
bit program counter and eight modified instructions that operate over the full 24-bit address range. All modified branching instructions
automatically store and restore the entire contents of the 24-bit program counter. The 24-bit DPTR, DPTR1, DPTR2, and DPTR3 regis-
ters function identically to the program counter to allow access to the full 24-bit data memory range.
All the DS80C400 instruction op codes retain binary compatibility to the 8051. Modified instructions are different only with respect to
their cycle/byte/operand count and operate within a contiguous 24-bit address field. Note that all instructions utilizing the DPTR regis-
ter now make use of a full 24-bit register (DPTR = DPXn + DPHn + DPLn where n = 0, 1, 2, or 3). This mode of operation requires soft-
ware tools (assembler or compiler) specifically designed to accept the modified length of the new instructions.
In addition, the 24-bit contiguous mode utilizes the MXAX register to supply the upper 8 bits of the 24-bit MOVX address during regis-
ter-indirect MOVX instructions such as MOVX @Ri, A or MOVX A, @Ri. In this mode, the complete MOVX addr
ess is formed by con-
catenating MXAX, P2, and R1 or R0. The DPTR-related MOVX instructions do not utilize the P2 and MXAX register.
The instructions modified to operate in the 24-bit contiguous address mode are summarized in the following table.
3 5 (PC) = (PC) + 3
(SP) = (SP) + 1
((SP)) = (PC
7:0
)
(SP) = (SP) + 1
(SP) = (SP) + 1
((SP)) =
(PC
23:16
)
(PC
18:0
) =
addr19
AJMP addr 19
3 5 (PC) = (PC) + 3
(PC
18:0
) =
addr19
LCALL addr24 0
a
23
a
15
4 6 (PC) = (PC) + 4
(SP) = (SP) + 1
((SP)) = (PC
7:0
)
(SP) = (SP) + 1
(SP) = (SP) + 1
((SP)) =
(PC
23:16
)
(PC
23:0
) =
addr24
LJMP addr24 0
a
23
a
15
4 5 (PC
23:0
) =
addr24
MOV DPTR,
#data24
1
d
23
d
15
4 3 (DPX) =
#data23:9
(DPH) =
#data15:8
RET 00100010 22 1 5(PC
23:16
) =
((SP))
(SP) = (SP) - 1
(SP) = (SP) - 1
(PC
7:0
) = ((SP))
(SP) = (SP) - 1
RETI 0 0 1 1 0 0 1 0 32 1 5 (PC
23:16
) =
((SP))
(SP) = (SP) - 1
(SP) = (SP) - 1
(PC
7:0
) = ((SP))
(SP) = (SP) - 1
Commenti su questo manuale