Isolated I/O (from Wakerly)
Intel machines incorporate a less expensive form of isolated I/O. They use a control line to select
between conventional memory and I/O ports rather than a dedicated I/O bus. The bus connects to
a bank of 8-bit I/O ports to which both the device and the CPU have access. The same bus also
connects to conventional memory. The ports are logically an extra bank of memory used strictly
for interfacing with external devices. In the Intel scheme, the M/ line selects which chip(s) will
be active, thus determining whether a particular address maps to standard memory or to the bank
of I/O ports. This means that there can be two separate address spaces. An address space is the
range of addresses possible given a particular width for the address bus. Having two separate
address spaces means that there are actually two different memory locations with address $0000,
two with address $0001, etc.; one in standard memory and another in the set of I/O ports.
Intel's Version of Isolated I/O, Without Dedicated Buses (from Orejel)
Memory Mapped I/O
Memory mapped I/O uses existing instructions. This implies that all the standard addressing
modes available for MOVE instructions are also available for accessing I/O ports. Memory