From: "James Daniels" <james.daniels@...>
> I meant odd and even in the traditional sense - i.e. an even address is
> exactly divisible by 2 (2n) whereas an odd address is not (2n+1).
You can only perform 8-bit reads on odd addresses. 16-bit reads must be
on 16-bit boundaries. 32-bit reads on 32-bit boudaries. I believe that prior
discussions on this have indicated that if you perform a non-aligned read that
the memory read is performed as though the lower bits were 0 (i.e. a read from
2n+1 will read the 16 bits at 2n) and then the input data will be rotated within
the 32-bit register. For example, reading the from address 2n + 1 where the
16 bits at 2n = 0xabcd will result in a register containing 0xcd0000ab.
This is quite different from some CISC processors that will perform the
unaligned
read by issuing multiple reads.
- John