Давайте представим, что процессор имеет только 4 контакта (бит) для адресации устройств. Это означает, что он может выбрать до 16 устройств, от 0000 до 1111.
Теперь подумайте, что адреса ОЗУ имеют значения от 0000 до 0111 (8 адресов, очень ограниченное ОЗУ), оставляя только 8 (от 1000 до 1111) для других устройств (жесткий диск, последовательный порт, порт USB, Ethernet, Wifi и т.д.).
То же самое происходит в очень больших масштабах на реальных процессорах, у них есть место для адресации всего оборудования, ограниченного физическими выводами на процессоре. Когда процессор запускается, BIOS распознает установленное оборудование и назначает адресное пространство для каждого из них.
В более старых системах, таких как DOS и Windows 3.1, он обычно устанавливался вручную с помощью файлов конфигурации, таких как autoexec.bat и config.sys, или с помощью DIP-переключателей и перемычек непосредственно на оборудовании. Современные системы делают это динамически с помощью таких механизмов, как PCI и PCI Express.