T
Tim Slattery
Pretty similar, though.
It's been awhile, though, and I can't remember the difference between the
8088 and 8086 anymore. I seem to remember 20-bit *addressing*, and a 16
bit word size for the *data* bus.
16 bit word size, which meant that they used a kludge to get 20-bit
(1MB) addressing. A program on that machine set a base register first.
Then the contents of that would be left-shifted four bytes (multiplied
by 16) and added to whatever 16-bit address was specified in the
instruction. That was segmented memory: if you moved more than 64KB
from your base, you had to reset the base register. If made address
arithmetic ... interesting.
In the 80286 protected mode, there was still a base register, but it
now held an index into the "Global Selector Table". The OS (maybe the
hardware?) would go to that table to find the base address to add to
the 16-bit offset in the instruction. Address arithmetic became even
more interesting.