Assume that a 16 bit cpu is trying to access a double word starting at an odd address. How many memory operations are required to access the data?
Answers
3 for double word beginning at odd address.
2 for double word beginning at even address.
1 for single word beginning at even address.
2 for single word beginning at odd address.
Given:
A 16 bit cpu is trying to access a double word starting at an odd address
To find:
Number of memory operations are required to access the data
Solution:
3 for double word beginning at odd address.
3 memory operations : for Double word starting at Odd address 2 memory operations : for Double word starting at Even address and 1 memory operations : for Single word starting at Odd address. This Qtn had already been answered by Arjun Sir. This is the take away content from that.
The 16 bit members of the 80x86 family can load a word from any arbitrary address. As mentioned earlier, the processor fetches the L.O. byte of the value from the address specified and the H.O. byte from the next consecutive address. This creates a subtle problem if you look closely at the diagram above. What happens when you access a word on an odd address? Suppose you want to read a word from location 125. Okay, the L.O. byte of the word comes from location 125 and the H.O. word comes from location 126. What's the big deal? It turns out that there are two problems with this approach.
Double wword means
162 that is 32 bit word
CPU is capable of 16 bit word length
So starting from ODD address it takes 3 operations
Copying first data to another register
And then another 16 bits to other register
And then combining the both
Totally 3 operations are needed