The 8086 microprocessor can address up to 1MB of memory (20 bit address bus). Most books show a diagram of this 1MB memory which in turn shows interrupt vector tables, DOS function, BIOS routines taking up memory space etc
MY QUESTION:
When the 1MB of memory is referred to, do the books refer to the ROM and RAM of the computer. Is the ROM + RAM = 1MB of memory interfaced? If yes, when memory mapped I/O is shown as a memory segment in this 1MB memory space…..do they mean that the I/O ports is taking some of the RAM memory?
Best Answer
Correct. The CPU does not distinguish between RAM and ROM; the 1 MB address space is shared between both.
Sort of. I/O ports (as used by the
IN
andOUT
instructions) are technically a separate address space on x86, and do not occupy memory address space.Memory-mapped peripherals, however, are accessed like memory, and occupy memory address space (which they share with RAM and ROM).