in 8086 microprocessor a 20 bit address is divided in 16bit+4bit address in which 4 bit binary is the segment address.when we convert a 4bit binary into hexadecimal it gets to 1bit hexadecimal.my question is when we encounter the problem of calculating the physical address from the logical, a 4bit hexadecimal segment address is given.why is it so?
Also in the calculation of physical address we append 0 in lsb to find the base address of the segment and then we add the offset into it. what is the logic behind appending 0?
in 8086 microprocessor a 20 bit address is divided in 16bit+4bit address in which
Share
One segment is equal to one paragraph. One paragraph is equal to 16 decimal bytes or 10 hexadecimal bytes. So a segment value of
89ABwith zero offset is equal to89AB x 10or89AB0(note: all addresses are in hexadecimal for this context).For segment-offset to 20-bit absolute address conversion example, this is best represented like this:
For absolute address to segment-offset conversion:
or…
or can be split at middle…
All above three segment-offset address including
89AB:F012(the original address value) points to the same absolute address (same physical location).