Electronic – Memory interfacing with 8086

busmemorymicroprocessorramrom;

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

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?

Correct. The CPU does not distinguish between RAM and ROM; the 1 MB address space is shared between both.

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?

Sort of. I/O ports (as used by the IN and OUT 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).