基礎四物理地址=段地址x16+偏移地址做法
編程時,可以根據需要將一組內存單元定義為一個段。
可以將起始地址為16的倍數,長度為N(N≤64K )的一組地址連續的內存單元,定義為一個段。
將一段內存定義為一個段,用一個段地址指示段,用偏移地址訪問段內的單元--在程序中可以完全由程序員安排。
三種分段
* **數據段**:將段地址放在DS中。用mov, add, sub等訪問內存單元的指令時, CPU將我們定義的數據段中的內容當作數據段來訪問;
* **代碼段**:將段地址放在CS中,將段中第一條指令的偏移地址放在IP中。 CPU將執行我們定義的代碼段中的指令;
* **棧段**:將段地址放在SS中,將棧頂單元的偏移地址放在SP中。CPU在需要進行棧操作(push, pop)時,就將我們定義的棧段當作棧空間來用。