❶ 微機原理尋地址方式和求物理地址。
mov es:[si], ax 中目的操作數為 寄存器間接定址,其物理地址=es*16(即左移4位)+si=20000h+0200h=20200h 。
從已有條件看,ax 為源操作數,但其 未知。
❷ 8086如何計算的物理地址
8086中含有存儲器。存儲器中每一個單元的地址可以用兩種方法表示:
1.邏輯地址:其表達形式為「段地址:段內偏移地址」。
2.物理地址:CPU與存儲器進行數據交換時在地址匯流排上提供的20位地址信息稱為物理地址。
物理地址=段地址×10H+段內偏移量
註:H為16進制,CS :代碼段寄存器,
❸ 物理地址的計算方法
20位物理地址計算方法如下:
物理地址=段基址*16d+偏移地址
❹ 指出定址方式並計算物理地址
第一種是指定段寄存器的方法
具體的物理地址是通過ES和BX來計算的,計算方法和DS:BX的方法一樣,只不過是把DS換成了ES,沒有加段指示前綴的話默認為DS
第二種是MASM提供的一種定址方式
其實映射到指令的話就是"基址+偏移量"的定址方式,SI是基址,VAL在這里代表偏移量,這條指定對應的指令是:
MOV AX,[SI+50H]
第三種和第二種類似
其實就是"基址+變址+偏移量"的定址方式
具體的數值自己計算吧
❺ 2.6 什麼是邏輯地址什麼是物理地址如何由邏輯地址計算物理地址
【解】:物理地址:完成存儲器單元或I/O埠定址的實際地址成為物理地址,CPU型號不同其物理地址也不同。物理地址是指CPU和存儲器進行數據交換時實際所使用的地址,而邏輯地址是程序使用的地址。物理地址由兩部分組成:段基址(段起始地址高16位)和偏移地址。前者由段寄存器給出,後者是指存儲單元所在的位置離段起始地址的偏移距離。當CPU定址某個存儲單元時,先將段寄存器的內容左移4位,然後加上指令中提供的16位偏移地址而形成20位物理地址。在取指令時,CPU自動選擇代碼段寄存器CS,左移4位後,加上指令提供的16位偏移地址,計算出要取指令的物理地址。堆棧操作時,CPU自動選擇堆棧段寄存器SS,將其內容左移4位後,加上指令提供的16位偏移地址,計算出棧頂單元的物理地址。每當存取操作數時,CPU會自動選擇數據段寄存器(或附加段寄存器ES),將段基值左移4位後加上16位偏移地址,得到操作數在內存的物理地址。
❻ 什麼是有效地址什麼是物理地址如何由有效地址求得物理地址
物理地址指CPU定址主存時使用的20位地址,它確定了某一實際位置的內存單元.(2分)內存單元物理地址可由段址和段內的偏移量確定.內存單元在段內的偏移量稱為有效地址(EA).(2分)
物理地址=段址×16+段內的偏移量.(3分)
❼ 什麼是邏輯地址什麼是物理地址
邏輯地址: 是指由程序產生的與段相關的偏移地址部分。又稱絕對地址。
物理地址:在存儲器里以位元組為單位存儲信息,為正確地存放或取得信息,每一個位元組單元給以一個唯一的存儲器地址,稱為物理地址,又叫實際地址或絕對地址。
一、關系:邏輯地址和物理地址相對的。物理地址是唯一的,邏輯地址的相對的。
二、表達方式:
1、邏輯地址:其表達形式為「段地址:段內偏移地址」。
2、物理地址:CPU與存儲器進行數據交換時在地址匯流排上 。
(7)定址中物理地址怎麼算擴展閱讀:
一、邏輯地址的產生背景
追根求源,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+偏移地址。
❽ 邏輯地址轉換物理地址公式
物理地址是明確的、最終用在匯流排上的編號。那麼邏輯地址轉物理地址怎麼轉?我為大家介紹邏輯地址轉物理地址的解決 方法 。希望大家喜歡。
邏輯地址轉換物理地址公式參考如下
1. 物理地址和邏輯地址
物理地址:載入到內存地址寄存器中的地址,內存單元的真正地址。在前端匯流排上傳輸的內存地址都是物理內存地址,編號從0開始一直到可用物理內存的最高端。這些數字被北橋(Nortbridge chip)映射到實際的內存條上。物理地址是明確的、最終用在匯流排上的編號,不必轉換,不必分頁,也沒有特權級檢查(no translation, no paging, no privilege checks)。
邏輯地址:CPU所生成的地址。邏輯地址是內部和編程使用的、並不唯一。例如,你在進行C語言指針編程中,可以讀取指針變數本身值(&操作),實際上這個值就是邏輯地址,它是相對於你當前進程數據段的地址(偏移地址),不和絕對物理地址相干。
(具體步驟 共三步)
1.確定虛擬地址(物理地址)的有效位
例如:假設頁面大小1KB,共32頁。(頁面:邏輯地址 頁框:物理地址)
由32(KB)=32×1024(B) 即等於32×1024 位元組
二進制用多少位能有效表示這么多位元組呢——答是:15位 因為32×1024=2^5×2^10=2^15
2.再次確定邏輯地址頁面位數 你應該知道:邏輯地址=頁號+頁面
還是以上假設,那麼頁面大小為1KB=1024位元組 同樣的方法計算出表示位數:10位
如果給你邏輯地址:0000 1111 1000 0000
那麼由:011+11100000000(相當於 頁號+頁面(10位))推得出頁號011=3
3.根據頁號找出對應的頁框號
由 物理地址=頁框號×頁塊大小(頁塊大小是等於頁面大小的)+頁內位移(即頁面邏輯地址)
根據上面 物理地址=頁框號×1024B + 1110000000 ( 這里的相加是指位置上而言)
例如:110+110=110110(即高地址+低地址)
提問:在一分頁存儲管理系統中,邏輯地址長度為16位,頁面大小為4096B,現有一邏輯地址為2F6AH,且第0、1、2頁依次存放在物理塊5、10、11中,問相應的物理地址為多少?
答:4096B=2^12B
16位定址一共2^16B
分頁存儲。共分的頁:2^16/2^12=2^4=16 共分16頁。
第0頁的地址范圍 0 - FFFH
第1頁的地址范圍 1000H - 1FFFH
第2頁得地址范圍 2000H - 2FFFH
.....
第11頁 B000H - BFFFH
第15頁 F000H - FFFFH
2F6AH=10 1111 0110 1010 在2頁的范圍對應物理塊11
所以物理地址為:
2F6AH - 2000H + B000H = F6AH + B000H= BF6AH
❾ 操作系統的物理地址怎麼計算
其實第一條回答是正確的,我在這里為網友們追加一個解釋:
按照書上定義,在頁式存儲系統中,
絕對地址 = 塊號 x塊長 +業內偏移地址。
相對地址 由一段內存的高bit位作為頁號,低bit位作為頁內偏移地址
那重要的一點是,如果找出這三個變數。且看該題:
每頁1KB,說明了,業內偏移地址的范圍是0~1023byte 換句話說,頁內偏移地址佔16bit中的 0-9bit, 那按照相對地址的概念,那10-15 bit就該為頁號地址了。
那麼, 0x0A5C <=> 0000 1010 0101 1100
則前面 0000 10 這6個bit 表示頁號,換算成十進制為 2,也即是頁號為2,再按照頁表推算,即物理塊號就為4, 而4再換算成16進制,即是0001 00;而後面 10 0101 1100 這10個bit位,理所當然的為頁內偏移地址了。 則物理地址就該為0001 00 (占據10-15bit)+ 10 0101 1100 (占據0-9bit) = 0001 0010 0101 1100
他的所謂憑接,其實就是讓0001 00 佔用bit 10-15.