物理地址段地址
物理地址段地址
物理地址段地址是什么?先把段地址乘以16就等于把它向左移動4位?學習啦小編整理了相關資料,下面大家跟著學習啦小編一起去了解一下吧。
物理地址段地址
為什么段地址要_6
因為x86處理器地址總線是20位,最大管理1M內存,對應物理地址是00000H-fffffH而內部數據總線、寄存器都是16位的,能表示的范圍為0000H-ffffH如何用16位寄存器表示20位?想到這樣一種方式:把兩個16位寄存器相加得到20位,于是便有了物理地址=段地址_6+偏移地址相當于在16位地址后面加4個0,形成20位地址具體過程如下:段地址和偏移地址通過內部總線傳入到地址加法器的部件; 地址加法器將兩個16位地址合并為一個20位的物理地址;
相當于左移四位,然后地址相加,得到一個二十位的地址,因為當時地址線20根,寄存器最高16位,要尋址1M的空間,必須用段地址和偏移地址結合的辦法。
物理地址是20位的,段地址和偏移地址都是16位的。先把段地址乘以16就等于把它向左移動4位,這樣它就變成了20位地址的高16位,再加上16位的偏移地址就是最終的物理地址。
我們看一個例子,一個數據為2H,二進制形式為10B,對其進行左移運算:
觀察上面移位次數和各種形式數據的關系,我們可以發(fā)現:
(1)一個數據的二進制形式左移1位,相當于該數據乘以2;
(2)一個數據的二進制形式左移N位,相當于該數據乘以2的N次方;
(3)地址加法器如何完成段地址_6的運算?就是將二進制形式存放的段地址左移4位。
進一步思考,我們可看出:一個數據的十六進制形式左移1位,相當于乘以16;一個數據的十進制形式左移1位,相當于乘以10;一個X的進制的數據左移1位,相當于乘以X。發(fā)散思維。
“ 段地址_6+偏移地址=物理地址”的本質含義是:CPU在訪問內存時,用一個基礎地址(段地址_6)和一個相對于基礎地址的偏移地址相加,給出內存單元的物理地址。
下面用兩個比喻來說明“基礎地址+偏移地址 = 物理地址的思想”
比如說,學校、體育館、圖書館同在一條筆直的單行路上,學校位于起點,你要去圖書館,問我那里的地址,我可以用兩種方式告訴你圖書館的地址:
(1)從學校走2826m到圖書館。這2826m可以認為是圖書館的物理地址。
(2)從學校走2000m到體育館,從體育館再走826m到圖書館。第一個距離2000m,是相對于起點的基礎地址,第二個距離826m是相對于基礎地址的偏移地址。
第二個比喻,比如,只能通過紙條來互相通信,你問我圖書館的地址我只能將它寫在紙上告訴你。顯然,我必須有一張可以容納4位數據的紙條,才能寫下2826這個數據。
可不巧的是,我沒有能容納4位數據的紙條,僅有兩張可以容納3位數據的紙條。
這樣我只能這樣告訴你數據。
一個是200
一個是826
拿到這個數據后,你要做如下運算處理:
200(段地址)_0+826(偏移地址) = 2826(物理地址)
8086CPU就是這樣一個只能提供兩張3位數據紙條的CPU。
看過“ 物理地址段地址”的人還看了:
1.物理地址和邏輯地址的區(qū)別
2.物理地址和虛擬地址
3.物理地址與虛擬地址映射
4.物理首地址是什么意思
5.物理首地址是什么