Я бы предположил, что номера портов ввода / вывода в основном определяются (или назначаются) чипсетом материнской платы. Кроме того, я бы предположил, что в исходной архитектуре IBM PC использовалось специальное назначение, которое было принято другими производителями для обеспечения совместимости с IBM PC.
AFAIK, не все устройства используют фиксированные номера портов ввода / вывода. Это особенно верно, поскольку более современные шины (начиная, например, с PCI) позволяют реконфигурировать диапазон портов, который использует конкретное устройство. Возможно, вам придется изучить технологию P'n'P, чтобы узнать больше об этом.
AFAIK, фиксированные номера портов ввода / вывода в основном используются для стандартных (устаревших) компонентов, таких как контроллеры жестких дисков и жестких дисков ATA (IDE), клавиатура PS / 2 и т. Д. Я могу представить, что в современных системах эти номера портов используются только для обратной совместимости.