在IBM PC體系結構中,I/O地址空間一共提供了65,536個8位的I/O連線埠。可以把兩個連續的8位連線埠看成一個16位連線埠,但是這必須是從偶數地址開始。同理,也可以把兩個連續的16位連線埠看成一個32位連線埠,但是這必須是從4的整數倍地址開始。有四條專用的彙編語言指令可以允許CPU對I/O連線埠進行讀寫:它們分別是in、ins、out和outs。在執行其中的一條指令時,CPU使用地址匯流排選擇所請求的I/O連線埠,使用數據匯流排在CPU暫存器和連線埠之間傳送數據。
I/O連線埠還可以被映射到物理地址空間:因此,處理器和I/O設備之間的通信就可以直接使用對記憶體進行操作的彙編語言指令(例如,mov、and、or等等)。現代的硬體設備更傾向於映射I/O,因為這樣處理的速度較快,並可以和DMA結合起來使用。也就解釋了為什麼32位系統名義上支持4G記憶體,實際上你裝上4G記憶體條在機器上是不行了。因為訪問不到4G,還需要為顯示卡,音效卡等設備提供物理地址的映射。
系統設計者的主要目的是提供對I/O編程的統一方法,但又不犧牲性能。為了達到這個目的,每個設備的I/O 連線埠都被組織成一組專用暫存器。CPU把要發給設備的命令寫入控制暫存器(control register),並從狀態暫存器(status register)中讀出表示設備內部狀態的值。CPU還可以通過讀取輸入暫存器(input register)的內容從設備取得數據,也可以通過向輸出暫存器(output register)中寫入位元組而把數據輸出到設備。