簡單的彙編指令spa
CPU執行後,寄存器中的數據改變爲以下:內存
CPU訪問內存單元時要給出內存單元的地址。全部的內存單元構成的存儲空間是一個一維的線性空間。 這個惟一的地址就是物理地址。io
16位結構描述了一個CPU具備一下幾個方面特徵:二進制
1 運算器一次最多能夠處理16位的數據。方法
2 寄存器的最大寬度爲16位。im
3 寄存器和運算器之間的同路是16位的。數據
8086有20位地址總線,可傳送20位地址,尋址能力爲1M。img
8086內部爲16位結構,它只能傳送16位的地址,表現出的尋址能力卻只有64K。co
8086CPU採用一種在內部用兩個16位地址合成的方法來造成一個20位的物理地址。錯誤
地址加法器合成物理地址的方法:物理地址= 段地址*16+偏移地址
移位次數和各類形式數據的關係:
1一個數據的二進制形式左移1位。至關於該數據乘以2;
2一個數據的二進制形式左移N位,至關於該數據乘以2的N次方。
錯誤認識:
內存被劃分紅一個一個的段,每個段有一個段地址。
正確認識:
內存並無分段,段的劃分來自於CPU,因爲8086CPU用「段地址*16+偏移地址=物理地址」的方式給出內存單元的物理地址,使得咱們能夠用分段的方式來管理內存。
注意:
1段地址*16 必然是 16的倍數,因此一個段的起始地址也必定是16的倍數。
2偏移地址爲16位,16位地址的尋址能力爲64K,因此一個段的長度最大爲64K。
小結:
CPU訪問內存單元時,必須向內存提供內存單元的物理地址。
8086CPU在內部用段地址和偏移地址移位相加的方法造成最終的物理地址。
CPU能夠經過不一樣的方式 用 段地址加偏移地址 造成同一個物理地址
在8086PC機中,存儲單元的地址用兩個元素來描述。即段地址和偏移地址。
數據在21F60H內存單元中,對於8086PC機的兩種描述。
a 數據存在內存2000:1F60單元中
b 數據存在內存的2000段中的1F60單元中。
可根據須要,將地址連續、起始地址爲16的倍數的一組內存單元定義爲一個段。