怎樣把邏輯位址轉化為實體地址?
1樓:死去的螺旋
如果是16進位的話 將段位址移一位 加上偏移位址就是了。
如果是二進位的話 是將段位址移4位 加上偏移量。
邏輯位址轉換實體地址公式
2樓:天羅網
物理知談位址。
是明確的、最終用在匯流排上的編號。那麼邏輯位址轉實體地址怎麼轉?我為大家介紹邏輯位址轉實體地址的解決 方法 。希望大家喜歡。
1. 實體地址和邏輯位址
中的位址,記憶體單元的真正位址。在前端匯流排上傳輸的記憶體位址都是實體記憶體。
位址,編號從0開始一直到可用實體記憶體的最高階。這些數字被北橋。
nortbridge chip)對映到實際的記憶體條。
上。實體地址是明確的、最終用在匯流排上的編號,不必轉換,不必分頁,也沒有特權級檢查(no translation, no paging, no privilege checks)。
例如,你在進行c語言指標程式設計中,可以讀取指標變數本身值(&操作),實際上這個值就是邏輯位址,它是相對於你當前程序資料段的位址(偏移位址),不和絕對實體地址相干。
具體步驟 共三步)
1.確定虛擬位址(實體地址)的有效位。
由32(kb)=32×1024(b) 即等於32×1024 位元組。
二進位。用多少位能有效表示這麼多位元組呢——答是:15位 因為32×1024=2^5×2^10=2^15
還是以上假設,那麼頁面大小為1kb=1024位元組 同樣的方法計算中猛悔出表示位數:10位。
那麼由:011+11100000000(相當於 頁號+頁面(10位))推得出頁號011=3
3.根據頁號找出對應的賣正頁框號。
由 實體地址=頁框號×頁塊大小(頁塊大小是等於頁面大小的)+頁內位移(即頁面邏輯位址)
根據上面 實體地址=頁框號×1024b + 1110000000 ( 這裡的相加是指位置上而言)
提問:在一分頁儲存管理系統中,邏輯位址長度為16位,頁面大小為4096b,現有一邏輯位址為2f6ah,且第頁依次存放在物理塊中,問相應的實體地址為多少?
答: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
邏輯位址怎麼轉化為實體地址
3樓:嘟嚕的電子數碼
實體地址:載入到記憶體位址暫存器中的位址,記憶體單元的真正位址。在前端匯流排上傳輸的記憶體位址都是實體記憶體位址,編號從0開始一直到可用實體記憶體的最高階。
程式的邏輯位址空間變換成記憶體中的實際實體地址空間的過程,也就是說在裝入時對目標程式中指令和資料的修改過程。他是實現多道程式在記憶體中同時執行的基礎。重定位有兩種,分別是動態重定位與靜態重定位。
乙個邏輯位址由兩部份組成,段識別符號和段內偏移量。段識別符號是由乙個16位長的欄位組成,稱為段選擇符。其中前13位是乙個索引號。
這就是「段描述符(segment descriptor)」,段描述符具體位址描述了乙個段(對於「段」這個字眼的理解:我們可以理解為把虛擬記憶體分為乙個乙個的段。
比如乙個儲存器有1024個位元組,可以把它分成4段,每段有256個位元組)。這樣,很多個段描述符,就組了乙個陣列,叫「段描述符表」。
作業系統中邏輯位址轉實體地址是什麼?
4樓:惠企百科
1、確定虛擬位址(實體地址)的有效位。
3、由實體地址=頁框號×頁塊大小(頁塊大小是等於頁面大小的)+頁內位移(即頁面邏輯位址)
4、根據上面 實體地址=頁框號×1024b+1110000000。
5、若在一分頁儲存管理系統中,某作業的頁表如下所示。已知頁面大小為1024位元組,試將邏輯位址1011,2148,4000,5012轉化為相應的實體地址。
分析頁式儲存管理的地仿野唯址結構是一維的,即邏輯位址(或實體地址)只用乙個數值即可表示。若給定邏輯位址a,頁面備培的大小為l,則頁號p和頁內位址d可按照下式求得:
p=int[a/l]d=amodl
其中,int是取整函式(取數值的整數部分),mod是取餘函式(取數值的餘數部脊扮分)。
什麼是邏輯位址?什麼是實體地址?8086cpu如何將邏輯位址轉換為實體地址
5樓:
摘要。1 .邏輯位址:其表達形式為「段位址:段內偏移位址」. eg:邏輯位址:b027:ef7f,其段位址為b027h,偏移位址為ef7fh
2 實體地址: cpu訪問儲存單元時,必須在位址匯流排上提供乙個20位的位址資訊,以便選中所要訪問的儲存單元。把cpu訪問儲存器時實際定址所使用的20位位址稱為實體地址。
實體地址=段位址x10h +段內偏移量。
eg:邏輯位址:b027:ef7f,則實體地址為:b027h x 10h + ef7fh = b0270h + ef7fh = bf1efh
邏輯位址:cd17:000b, 則實體地址為:cd17h x 10h + 000bh = cd170h + 000bh = cd17bh
什麼是邏輯位址?什麼是實體地址?8086cpu如何將邏輯位址轉換為實體地址。
b027:ef7f,其段位址為襪旦判b027h,偏移位址為ef7fh2 實體地址: cpu訪問儲存單元時,必須在位址匯流排上提供乙個20位的位址資訊,以便選中所要訪問的儲存單元。
把cpu訪問儲存器時實際定址所使用的20位位址稱為實體地址。實體地址=段位址x10h +段內偏移量告改遲鋒eg:邏輯位址:
b027:ef7f,則實體地址為:b027h x 10h + ef7fh = b0270h + ef7fh = bf1efh 邏輯位址:
cd17:000b, 則實體地址為:cd17h x 10h + 000bh = cd170h + 000bh = cd17bh
匯流排週期的含義是什麼?8086乙個基本的匯流排週期由幾個時鐘週期構成。
問一問自定義訊息】
還能問嗎?不能了。
實體地址是邏輯位址嗎?
6樓:生活小達人
區別如下:
實體地址:在儲存器裡以位元組為單位儲存資訊,為正確地存放或取得資訊,每乙個位元組單元給以乙個唯一的儲存器位址,稱為實體地址,又叫實際位址或絕對位址。
二、表達方式:
追根求源,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段結構的原理。
組合語言邏輯地址轉換為實體地址,組合語言把下列邏輯地址轉換成實體地址分頁定址,總容量4Gbyte,不可見暫存器CR3中的內容是2000H
演算法 實體地址 段首地址 10h 偏移地址 你的問題裡前面數值代表段首地址,後面數值代表偏移地址按照公式直接算就可以看了,比如 39ab b087 實體地址 39abh 10h b087 44b37 前面的乘以10h加上後面的,例如 1 39abh 10h b087h 44b37h 電腦內的計算機...
linux中虛擬地址和實體地址怎樣對映
虛擬就是虛擬的,不是實際真是的實體地址。你可以認為,這兩個地址之間沒關係。這個虛擬是通過系統和硬體的雙重工作,做的一種點對點的對映 當然實際記憶體分配是按照頁來處理 也就是軟體不需要考慮記憶體資料的實體地址,只需要用虛擬地址做資料儲存處理就行了。linux中虛擬地址和實體地址怎樣對映 linux虛擬...
IP地址與實體地址這間怎麼轉換,IP地址與實體地址怎麼轉換
ip地址不是根據mac地址來轉換的。通過tcp ip屬性裡設定,手動指定,或者從dhcp伺服器的ip池裡租來的。1122334455這種mac地址是網絡卡本身自有的。除非藉助軟體。否則是不能更改!十進位制ip地址如 202.106.185.77轉換成十進位制就是3395991885不信的話你們pin...