首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

x86 組合語言入門:段暫存器 SS 與物理位址計算

     編輯:程式設計綜合問答

問題 1:為何 MOV SS, AX 需透過 AX?

SS(Stack Segment)為段暫存器,**無法直接接受立即數**,必須先將段值載入通用暫存器(如 AX),再傳送至 SS。AX 此時僅作暫存傳遞,其值在 SS 中才具備「段基址」意義。

問題 2:物理位址計算

實模式下:物理位址 = 段基址 × 16 + 偏移量(即段值左移 4 位 + 偏移)。

  • 範例:段值 1H,偏移 0 → 物理位址 = 1H × 10H + 0 = 10H。
  • 同一物理位址可用不同「段:偏移」表示,如 0:10H、1:0 均指向 10H。

核心觀念

  • 段暫存器(CS/DS/SS/ES)儲存段基址(段值),需配合偏移暫存器(IP/SP/SI/DI 等)形成完整位址。
  • 通用暫存器(AX/BX/CX/DX)僅存放數值,不具分段意義,但可作為段值的暫存載體。
  • 理解「段:偏移」到物理位址的換算,是組語記憶體定址的基礎。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved