Question

I know that 8086 has a 20-bit address bus and 16-bit registers, so it need 2 registers to locate the obsolutely memory address. Why don't 8086 use 20-bit registers?

Was it helpful?

Solution

Several reasons.

  1. it maintains some backward compatibility with the 8080. If you set all the segment registers to 0, I think it will run 8080 code.
  2. the data bus is only 16 bits wide. The segmented architecture allows you to pull in a whole address in one memory read cycle. 20 bit addresses would require two.

Those are the two I can think of off the top of my head.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top