dsp56800e Freescale Semiconductor, Inc, dsp56800e Datasheet - Page 202

no-image

dsp56800e

Manufacturer Part Number
dsp56800e
Description
16-bit Digital Signal Controller Core
Manufacturer
Freescale Semiconductor, Inc
Datasheet
Address Generation Unit
When word addresses are used, each unique address refers to a different 16-bit word in memory. As shown
in Figure 6-4, locations X:$2000 and X:$2001 refer to adjacent 16-bit words. Byte addresses are used to
locate individual bytes in memory. Addresses X:$4000 and X:$4001 refer to 2 bytes contained in the same
word (the word at X:$2000, using word addressing). Note that data is stored in memory with the least
significant byte occupying the lowest memory location. This is often referred to as “little-endian” byte
ordering.
Byte and word addresses are distinguished by the instruction that uses them. For most instructions,
including those that explicitly perform a word or long-word access, address register values are interpreted
as word addresses. Address register values are interpreted as byte addresses only when instructions with
the “.BP” extension are used.
6.5
Instructions that use address registers as word pointers can access bytes, words, and longs from data
memory. Table 6-2 on page 6-9 shows the word address in data memory that is accessed for the different
addressing modes and data types when word pointers are used. For byte accesses, the LSB of the offset
before the right shift selects the upper or lower byte. For the post-update addressing modes, the address in
Rn is used for the memory access and then is post-updated using the arithmetic shown in Table 6-2.
All immediate offsets and absolute addresses for long-word moves must be even values because long
words must be located on an even word address boundary. When the assembler encounters these
instructions, it divides the absolute address and offset values by two before generating the opcode (no
information is lost, since the low-order bit is guaranteed to be zero). When the instruction is executed, the
AGU left shifts the absolute value 1 bit to generate the correct word address or offset.
6-8
Word Pointer Memory Accesses
Addresses
Word
Byte addresses can not be used for accessing program memory. Program
memory accesses are always performed with word addresses.
The values “xx,” “xxxx,” and “xxxxxx” that appear in Table 6-2 on
page 6-9 for long word accesses are the values that are actually encoded by
the assembler, which have been divided by two during assembly. The table
describes what the hardware does after the instruction has been encoded by
the assembler.
$2003
$2002
$2001
$2000
15
$88
$66
$44
$22
X Memory
Figure 6-4. Word vs. Byte Addresses
DSP56800E Core Reference Manual
$77
$55
$33
$11
0
NOTE:
NOTE:
Identical Memory
Locations
Addresses
Byte
$4006
$4004
$4002
$4000
7
$88
$66
$44
$22
X Memory
Freescale Semiconductor
0
7
$77
$55
$33
$11
0

Related parts for dsp56800e