8086 為 16 位處理器,內部寄存器寬度 16 位,但地址總線 20 位(1MB 寻址空間)。
物理地址 = (段地址 × 16) + 偏移地址
= (段地址 << 4) + 偏移地址
段地址存放在段寄存器 (CS, DS, SS, ES) 中,偏移地址存放在通用寄存器 (IP, BX, SI, DI, BP, SP) 中。
CS = 0x1230, IP = 0x0045
物理地址 = 0x12300 + 0x0045 = 0x12345 (20 位)
DS = 0x5678, SI = 0x9ABC
物理地址 = 0x56780 + 0x9ABC = 0x6024C
| 術語 | 含義 |
|---|---|
| 段地址 | 16 位,左移 4 位形成基址 |
| 偏移地址 | 16 位,段內相對位置 |
| 邏輯地址 | 段:偏移 表示法,如 1230:0045 |
| 物理地址 | 20 位,實際加芯片選中線 |
| 段寄存器 | CS(code), DS(data), SS(stack), ES(extra) |
80286+ 引入描述符表 (GDT/LDT),段寄存器存選擇子,不再直接左移 4 位,支持 24/32/64 位物理地址。