2.2
Data Formats
2.2.1
Data Format in Registers
Register operands are always longwords (32 bits). When the memory operand is only a byte (8
bits) or a word (16 bits), it is sign-extended into a longword when stored into a register (figure
2.4).
2.2.2
Data Format in Memory
Memory data formats are classified into bytes, words, and longwords. Byte data can be accessed
from any address, but an address error will occur if an attempt is made to access word data starting
from an address other than 2n or longword data starting from an address other than 4n. In such
cases, the data accessed cannot be guaranteed. The hardware stack area, which is referred to by the
hardware stack pointer (SP, R15), uses only longword data starting from address 4n because this
area stores the program counter and status register (figure 2.5).
Address 2n
Address 4n
20
31
Longword
Figure 2.4 Data Format in Registers
Address m + 1
Address m
23
31
7
Byte
0
7
15
Word
31
Figure 2.5 Data Format in Memory
Address m + 3
Address m + 2
7
15
Byte
0
7
Byte
0
7
0
15
Word
Longword
0
0
Byte
0
0
0