X86程式碼段概念||暫存器
阿新 • • 發佈:2018-12-20
一. 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)進行中轉。