Solution - How 8086 memory mapping is 20 bits?-How possible?
Question:
We know that 8086 is a 16 bit microprocessor, But it's memory mapping is 20 bits. How is it possible?Solution:
8086 is a 16 bit microprocessor that means its arithmetic logic unit can execute 16 bit multiple instruction at a time and it's internal registers most of the instructions are 16 bits.
But 8086 has 20 bit address bus means it can address any one of 2^20 = 1 MB memory locations. The technique is given below:
The BIU (Bus Interface Unit) of the CPU consists of four segment register. Upper 16 bits of the starting address for that segment.
In BIU, pointer registers also called offset consists the distance from the base address to the next instruction byte to be fetched.
To make from 16 bit to 20 bit memory address the BIU automatically inserts zeroes for the lowest 4 bits of the segment base address, then the IP is added to the code segment(CS). Then the 16 bit offset is added to the segment. Thus 20 bit memory mapping is possible.
For example,
If the CS register contains 348AH, the starting address for the code segment is 348A0H (Here 0 is appended)
If IP is 4214H, then the 20 bit physical address of memory is
CS = 348A0H
IP = 4214H
-------------------------------------------
Physical address = 38AB4H
This is why 8086 memory mapping is 20 bits.
Tags:
How 8086 memory mapping is 20 bits, 8086 is a 16 bit microprocessor, But it's memory mapping is 20 bits. How is it possible, Why 8086 memory mapping is 20 bits, Why 8086 is 20 bit memory mapping, Memory mapping of 8086, Memory mapping of 8086, Why 8086 has 20 bit memory mapping, How to determine the physical address of 8086, Microprocessor and Assembly Language,
Subscribe to:
Post Comments
(
Atom
)
No comments :
Post a Comment