In may processors 4 byte should start at an address that is multiple of 4 (ends with binary 00), 2 byte at multiple of 2 and byte anywhere. However it possible to load the data other wise. This may be onereason.
The other may be due to the format of data storage, many processors store lower LSByte at a higher address and MSByte at a lower address. (Byte addressable ..)
To avoid problems check the data storage format before programming.
Hope this helps.
brmadhukar