Ok so, for 1st questions. On a 16-bit CPU, the 2 byte should be placed on addresses divisible by 2. So I have to separate 0xDEAD into 2 bytes that is:
DE AD where DE16 = 22210 & AD16 = 17310
So DE is divisible by 2 but AD is not. If so then, AE16=17410 ; AC16=17210 ; AA16=17010 are all divisible by 2, so which byte is the right one?
And What I have understood from "Data structure alignment" theory is that for 16bit CPU the aligned address is 2-byte so there would be log2(2) = 1 least-significant zeros when expressed in binary: DE (1101 1110) & AD (1010 1101)
Here the 1st byte has 1 least-significant zero where as the 2nd byte (AD) does not. So the only way a 2nd byte havs 1 least sig. zero is with: AE, AC or AA
Same outcome as dividing by 2....
I don't think I have fully understood what a byte and word address is. Are the hex digits the byte addresses?
I'm confused...