1. 程式人生 > >X86程式碼段概念||暫存器

X86程式碼段概念||暫存器

一. X86段,程式碼段概念

(X86有20根地址線,定址能力為1MB,CPU為16位,一次處理16位二進位制數,採用實體地址=段地址X16+偏移地址的方式定址。)

程式設計需要時,可以將記憶體空間的一段連續的地址定義為一個段。

其中段地址一定是16的倍數,即一個個位為0的16進位制5位數。段的最大長度受到偏移地址定址能力的制約,X86偏移地址定址能力為64KB。

存放程式碼的段記憶體稱之為程式碼段,將一段記憶體看作程式碼段,只是程式設計考慮,與硬體CPU等無關。

二. 暫存器

地址單元:記憶體的最小單元的地址,每個單元8位。連續,0,1,2,3,4……

地址字單元:記憶體的最小字單元地址,每個單元兩個地址單元,16位,存一個字,間隔,0,2,4,6……

DS 和 [address] 

DS暫存器:存放要訪問的資料的段地址,

讀取10000H地址的資料:

mov bx,1000H

mov ds,bx

mov al,[0]    //將一個記憶體單元中的值送到暫存器中。

格式:

mov 暫存器名,記憶體單元地址

[address]表示一個記憶體單元,其中的address表示記憶體單元的偏移地址。

執行時,CPU自動取ds暫存器中的值作為記憶體單元的首地址。

注意: X86不支援直接將資料送入段暫存器(硬體設計),只能用一個暫存器(例子中bx)進行中轉。