物理地址和邏輯地址

物理地址和邏輯地址概述  

當操作數是存放在存儲器中時,存儲器的存儲單元的物理地址有兩部分組成。一部分是偏移地址,一部分是段地址。

在8086/8088的各種尋址方式中,尋找存儲單元所需的偏移地址可由各種成分組成,稱爲有效地址,用EA表示。可以通過存儲器尋址方式獲得有效地址。 

 8086/8088CPU的地址線有20根,直接尋址220=1MB。而8086/8088CPU的字長爲16位,直接尋址216=64KB,無法尋址1MB。爲此,8086/8088採用了存儲器地址分段的方法。  將整個存儲器分成許多邏輯段,每個邏輯段的容量最多爲64KB,允許它們在整個存儲器空間浮動,各個邏輯段可以緊密相連,也可以重疊。對於任何一個物理地址來說,可以唯一地被包含在一個邏輯段中,也可以被包含在多個相互重疊的邏輯段中,只要能得到它所在段的首地址和段內相對地址,就可以對它進行訪問。在8086/8088存儲空間中,從0地址開始,把每16個連續字節的存儲空間稱爲小節。爲了簡化操作,邏輯段必須從任一小節的首地址開始。這樣劃分的特點是:在16進製表示的地址中,最低位爲0(即20位地址中的低4位爲0)。 

綜上所述,分段的原則如下:  (1)每個段的最大長度爲64KB; (2)段的首地址能被16整除。  

8086/8088中,每一個存儲單元都有一個唯一的20位地址,稱此地址爲該存儲單元的物理地址。

CPU訪問存儲器時,必須先確定所要訪問的存儲單元地址才能取得該單元的內容。20位的物理地址由16位的段地址和16位的段內偏移地址計算得到。段地址是每一邏輯段的起始地址,必須是每個小節的首地址,其低4位一定是0,於是在保留段地址時,可以只取段地址的高16位。偏移地址則是在段內相對於段起始地址的偏移值。

因此任一存儲單元物理地址的計算方法如下:  物理地址=16(10H)×段地址+段內偏移地址  

在微型計算機中,有4個存放段地址的寄存器,稱爲段寄存器。它們是代碼段寄存器CS、數據段寄存器DS、附加段寄存器ES、堆棧段寄存器SS。


發佈了57 篇原創文章 · 獲贊 10 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章