彙編語言 手記4

簡單的彙編指令spa

CPU執行後,寄存器中的數據改變爲以下:內存

CPU訪問內存單元時要給出內存單元的地址。全部的內存單元構成的存儲空間是一個一維的線性空間。 這個惟一的地址就是物理地址。io

 

16位結構描述了一個CPU具備一下幾個方面特徵:二進制

1 運算器一次最多能夠處理16位的數據。方法

2 寄存器的最大寬度爲16位。im

3 寄存器和運算器之間的同路是16位的。數據

 

8086有20位地址總線,可傳送20位地址,尋址能力爲1Mimg

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的倍數的一組內存單元定義爲一個段。

相關文章
相關標籤/搜索