6.2.1.2 float, int, and long Data Types (signed and unsigned)
The int, unsigned int, float, long and unsigned long data types are stored in memory as 32-bit objects at word (4 byte) aligned addresses. Objects of these types are loaded to and stored from bits 0-31 of a register, as shown in Figure 6-2. In big-endian mode, 4-byte objects are loaded to registers by moving the first byte (that is, the lower address) of memory to bits 24-31 of the register, moving the second byte of memory to bits 16-23, moving the third byte to bits 8-15, and moving the fourth byte to bits 0-7. In little-endian mode, 4-byte objects are loaded to registers by moving the first byte (that is, the lower address) of memory to bits 0-7 of the register, moving the second byte to bits 8-15, moving the third byte to bits 16-23, and moving the fourth byte to bits 24-31.
Figure 6-2 32-Bit Data Storage Format
Single-precision floating char |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
S |
E |
E |
E |
E |
E |
E |
E |
E |
M |
M |
M |
M |
M |
M |
M |
M |
M |
M |
M |
M |
M |
M |
M |
M |
M |
M |
M |
M |
M |
M |
M |
Signed 32-bit integer or long char |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
S |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
I |
Unsigned 32-bit integer or long |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
U |
U |
U |
U |
U |
U |
U |
U |
U |
U |
U |
U |
U |
U |
U |
U |
U |
U |
U |
U |
U |
U |
U |
U |
U |
U |
U |
U |
U |
U |
U |
U |
LEGEND: S = sign, M = Mantissa, U = unsigned integer, E = exponent, I = signed integer, MS = most significant, LS = least significant |