XMS
8086では、セグメントとオフセットという2つの16ビット値を用いてメモリ管理を行っている(これは8080等との互換性を考慮した結果の設計である)。MS-DOSにおけるメモリ管理も、このセグメント単位で行っている。参照する実メモリはセグメント×10h + オフセットとなる。
上記の理由から、286以降のCPUを使用しているコンピュータで、アドレスライン20以上のアドレスバスを有効にした後(8086との互換性のため、初期状態では電気的に無効になっている。なお、このアドレスライン20制御は機種依存する)、セグメントレジスタにFFFFhを指定すると、アクセスする実アドレスはFFFF0h – 10FFEFhとなる。すなわち、セグメント+オフセットという8086・MS-DOSのメモリ管理の枠内で、65520バイトのメモリが余分に扱えることになる。この領域をHMAと呼ぶ。
セグメント FFFFh:オフセット 0000h = FFFF0h + 0000h = FFFF0h(8086などでも可)
セグメント FFFFh:オフセット 0010h = FFFF0h + 0010h = 100000h