Ⅰ 什麼是8086中的邏輯地址和物理地址
8086中含有存儲器.
存儲器中每一個單元的地址可以用兩種方法表示:邏輯地址物理地址
1.邏輯地址:其表達形式為「段地址:段內偏移地址」.
2.物理地址:CPU與存儲器進行數據交換時在地址匯流排上提供的20位地址信息稱為物理地址.
物理地址=段地址×10H+段內偏移量
CPU一次處理的數據是16位,地址匯流排實際上代表CPU的定址能力,地址線為20條那麼CPU實際的定址能力就是2的20次方就是1M.
實際的物理地址是這樣形成的:段地址*10H+偏移地址,偏移地址用IP指向,IP是16位的.
例如段地址是1234H,偏移地址是4321H
那麼實際的物理地址怎麼算呢:1234H*10H+4321H=12340H+4321H=16661H
實際上可以這么來理解,就是段地址左移一位後加上偏移地址就得出實際的物理地址.
再比如:邏輯地址:1500H先化為2進制 0001 0101 0000 0000
左移四位就是0001 0401 0000 0000 0000,即15000H
若偏移地址為1000H 則物理地址就是16000H
Ⅱ 舉例說明8086中20位物理地址生成過程
現代內存容量太大比如256M,而計算機的數據線往往只有16位、32位或者64位(目前應用很少),他們所能他尋找到的地址空間最大不過是2^16(64K)、2^32(4M)或者2^64(16T),所以內存通常使用段頁式存儲。也就是將內存空間分成若干段,或者若干頁,每段大小是數據線所能訪問到的最大空間。在內存中的實際地址就是所謂的「物理地址」,而邏輯地址就是邏輯段管理內存而形成的。
比如在8086系統中,8086對外連接使用一個20位的線性地址唯一確定一個存儲單元,也就是說:對於每個存儲器單元都有的一個唯一的20位地址,我們稱為該單元的物理地址或絕對地址。
8086在內部結構中和程序設計時採用邏輯段管理內存,就形成了邏輯地址。它的表達形式為「段基地址 : 偏移地址」。
邏輯地址=段基地址 : 偏移地址
段基地址(Segment)——邏輯段在主存中的起始位置,簡稱段地址。由於8086規定段開始於模16地址,所以省略低4位0不顯式表達,段基地址就可以用16位數據表示。
偏移地址(Offset)——主存單元距離段起始位置的偏移量(Displacement)。由於限定每段不超過64KB,所以偏移地址也可以用16位數據表示。
這樣同一個存儲單元就即有物理地址,又有邏輯地址。但是請注意,物理地址是外部連接使用的、唯一的;而邏輯地址是內部和編程使用的、並不唯一。
物理地址和邏輯地址可以互相轉換。
將邏輯地址中的段地址左移4位,加上偏移地址就得到20位物理地址。這里左移的4位是二進制位;如果用十六進製表達地址就是左移一位(不知道為什麼,復習數制內容吧!還不知道為什麼,看疑難解答吧!)。左移4位還可以表達為乘以16,即:段地址×16+偏移地址。
同一個物理地址可以對應多個邏輯地址形式。所以物理地址轉換為邏輯地址,需要明確段基地址或偏移地址,然後同上原則確定另一個地址。
邏輯地址 1460H : 0100H 1380H : 0F00H
物理地址 14700H
於是,對於主存14700H單元,我們可以描述為在1460H(或1380H)段的100H(或F00H)單元,或者說主存1460H : 0100H(或1380H : 0F00H)單元。
Ⅲ 8086系統中訪問存儲器的20 位物理地址是如何形成的
首先 段寄存器 右移4位 成 20位地址 然後加上16位偏移地址 形成最後的 20位地址。如有不清楚可以去網上看看《微機原理與介面技術》第二版 (周明德) 第39頁
Ⅳ 什麼是邏輯地址什麼是物理地址
邏輯地址: 是指由程序產生的與段相關的偏移地址部分。又稱絕對地址。
物理地址:在存儲器里以位元組為單位存儲信息,為正確地存放或取得信息,每一個位元組單元給以一個唯一的存儲器地址,稱為物理地址,又叫實際地址或絕對地址。
一、關系:邏輯地址和物理地址相對的。物理地址是唯一的,邏輯地址的相對的。
二、表達方式:
1、邏輯地址:其表達形式為「段地址:段內偏移地址」。
2、物理地址:CPU與存儲器進行數據交換時在地址匯流排上 。
(4)存儲器的物理地址是怎麼形成的擴展閱讀:
一、邏輯地址的產生背景
追根求源,Intel的8位機8080CPU,數據匯流排(DB)為8位,地址匯流排(AB)為16位。那麼這個16位地址信息也是要通過8位數據匯流排來傳送,也是要在數據通道中的暫存器,以及在CPU中的寄存器和內存中存放的,但由於AB正好是DB的整數倍,故不會產生矛盾!
但當上升到16位機後,Intel8086/8088CPU的設計由於當年IC集成技術和外封裝及引腳技術的限制,不能超過40個引腳。但又感覺到8位機原來的地址定址能力2^16=64KB太少了,但直接增加到16的整數倍即令AB=32位又是達不到的。
故而只能把AB暫時增加4條成為20條。則2^20=1MB的定址能力已經增加了16倍。但此舉卻造成了AB的20位和DB的16位之間的矛盾,20位地址信息既無法在DB上傳送,又無法在16位的CPU寄存器和內存單元中存放。於是應運而生就產生了CPU段結構的原理。
二、物理地址的計算方法
在實地址方式下,物理地址是通過段地址乘以16加上偏移地址得到的。而16位的段地址乘以16等同於左移4位二進制位,這樣變成20位的段基地址,最後段基地址加上段內偏移地址即可得到物理地址。
20位物理地址計算方法如下:
物理地址=段地址*16d+偏移地址。
Ⅳ 2.6 什麼是邏輯地址什麼是物理地址如何由邏輯地址計算物理地址
【解】:物理地址:完成存儲器單元或I/O埠定址的實際地址成為物理地址,CPU型號不同其物理地址也不同。物理地址是指CPU和存儲器進行數據交換時實際所使用的地址,而邏輯地址是程序使用的地址。物理地址由兩部分組成:段基址(段起始地址高16位)和偏移地址。前者由段寄存器給出,後者是指存儲單元所在的位置離段起始地址的偏移距離。當CPU定址某個存儲單元時,先將段寄存器的內容左移4位,然後加上指令中提供的16位偏移地址而形成20位物理地址。在取指令時,CPU自動選擇代碼段寄存器CS,左移4位後,加上指令提供的16位偏移地址,計算出要取指令的物理地址。堆棧操作時,CPU自動選擇堆棧段寄存器SS,將其內容左移4位後,加上指令提供的16位偏移地址,計算出棧頂單元的物理地址。每當存取操作數時,CPU會自動選擇數據段寄存器(或附加段寄存器ES),將段基值左移4位後加上16位偏移地址,得到操作數在內存的物理地址。
Ⅵ 8086儲存器系統中物理地址是怎麼樣構成的
8086的物理地址是20位的 ,而8086本身只凳告有16位,所以它的物理地址是由一個段基址和一個偏移地址構成的,例如:DS段的脊橋地址是4B3Ah,它對應的偏移地址SI是1000h,則對應的物棗野明理地址就是 :16*4B3Ah + 1000h = 4C3A0h
Ⅶ 存儲器的邏輯地址由哪幾部分組成存儲器的物理地址是怎樣形成的
邏輯地址是指程序員編制的程序地址,由它構成邏輯地址空間。程序主存儲器中的實際地址稱為物理地址.
所以這里邏輯地址的組成得看你的存儲器是段表的還是頁表的,物理地址一般通過一個關系來對應邏輯地址.
當然樓上的回答也有正確的地方那就是在一般的定址中,指令的地址可以是這樣計算的,但是他的回答太不全面了.
Ⅷ 物理地址(CPU中相關術語)詳細資料大全
在存儲器里以位元組為單位存儲信息,為正確地存放或取得信息,每一個位元組單元給以一個唯一的存儲器地址,稱為物理地址(Physical Address),又叫實際地址或絕對地址。
Ⅸ 8086儲存器系統中物理地址是怎麼樣構成的
8086的物理地址是20位的 ,而8086本身只有16位,所以它的物理地址是由一個段基址和一個偏移地址構成的,例如:DS段的地址是4B3Ah,它對應的偏移地址SI是1000h,則對應的物理地址就是 :16*4B3Ah + 1000h = 4C3A0h