Overview

In older architectures (and still in x86), the CPU has a separate 'I/O address space' distinct from the main memory address space. Devices are assigned specific port numbers (e.g., port 0x3F8 for a serial port).

Instructions

x86 CPUs use special instructions like IN and OUT to read from and write to these ports.

Modern Trend

Most modern systems have moved toward Memory-Mapped I/O (MMIO), where devices are accessed using standard memory instructions at specific physical addresses.