導航:首頁 > 物理學科 > 匯編什麼叫物理地址

匯編什麼叫物理地址

發布時間:2023-08-29 06:01:27

A. 什麼叫物理地址什麼叫邏輯地址什麼叫地址映射地址映射分哪幾類

什麼叫物理地址?什麼叫邏輯地址?什麼叫地址映射?地址映射分哪幾類?
1、物理地址就是由硬體地址編碼電路產生的內存地址。
2、邏輯地址是軟體程序中使用的地址,是為了編程的簡易性、安全性等目的由物理地址按一些規則由物理地址轉化而來的地址。比如將物理地址空間分為若干段,從而一個物理地址就可以由一個段地址和一個段內地址構成的邏輯地址來表示了----這種物理地址和邏輯地址的對用關系就叫地址映射:
3、映射本是個數學概念,描述兩個集合元素之間的對應關系:如有兩個集合A和B,如果對於A中的每一個元素,B中都有唯一的一個元素與之對應,A和B的這種對應關系就稱為映射。
4、映射的種類很多,PC微機中有內存和外存之間映射、分頁等,有文件映射,埠映射:即讓內部網路中很多機器都能對外部網路提供WWW服務,只用一個網關IP地址,這當然需要把這些內部機器都映射到這同一個網關IP地址去了,這有很多好處,安全,省錢:就一個IP,當然省錢嘍。

B. 什麼是邏輯地址什麼是物理地址

邏輯地址: 是指由程序產生的與段相關的偏移地址部分。又稱絕對地址。

物理地址:在存儲器里以位元組為單位存儲信息,為正確地存放或取得信息,每一個位元組單元給以一個唯一的存儲器地址,稱為物理地址,又叫實際地址或絕對地址。

一、關系:邏輯地址和物理地址相對的。物理地址是唯一的,邏輯地址的相對的。

二、表達方式:

1、邏輯地址:其表達形式為「段地址:段內偏移地址」。

2、物理地址:CPU與存儲器進行數據交換時在地址匯流排上 。

(2)匯編什麼叫物理地址擴展閱讀:

一、邏輯地址的產生背景

追根求源,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+偏移地址。

C. 什麼是邏輯地址,什麼是物理地址,它們之間有什麼關系

邏輯地址:
是指由程序產生的與段相關的偏移地址部分。又稱絕對地址
物理地址:在存儲器里以位元組為單位存儲信息,為正確地存放或取得信息,每一個位元組單元給以一個唯一的存儲器地址,稱為物理地址,又叫實際地址或絕對地址。
二者關系:
邏輯地址和物理地址相對的。物理地址是唯一的,邏輯地址的相對的。

D. 物理地址是什麼啊

是指你的 網卡 MAC地址,,就相當於一個編號吧網卡物理地址存儲器中存儲單元對應實際地址稱物理地址
MAC(Media Access Control, 介質訪問控制)地址是識別LAN(區域網)節點的標識。網卡的物理地址通常是由網卡生產廠家燒入網卡的EPROM(一種快閃記憶體晶元,通常可以通過程序擦寫),它存儲的是傳輸數據時真正賴以標識發出數據的電腦和接收數據的主機的地址。
也就是說,在網路底層的物理傳輸過程中,是通過物理地址來識別主機的,它一般也是全球唯一的。比如,著名的乙太網卡,其物理地址是48bit(比特位)的整數,如:44-45-53-54-00-00,以機器可讀的方式存入主機介面中。乙太網地址管理機構(IEEE)將乙太網地址,也就是48比特的不同組合,分為若干獨立的連續地址組,生產乙太網網卡的廠家就購買其中一組,具體生產時,逐個將唯一地址賦予乙太網卡。
形象的說,MAC地址就如同我們身份證上的身份證號碼,具有全球唯一性。

E. 誰能幫我解釋一下,匯編語言中的物理地址,段基址和偏移地址的具體含義,及作用,要詳細一點,謝謝!

物理地址就是數據在內存中實際存放的位置.因為8086或8088有20條地址線,定址能力有2的20次方,1MBit.而8086或8088內部寄存器是是16位的,無法用一個位完全表示出來.所以採用段首地址+偏移量兩個寄存器來表示的方式,俗稱PC或CS:IP來表示一個實際的物理地址,這就是所謂的虛擬地址.例如段首地址為0000H,而偏移量的范圍就在0000H-FFFFH之間,就表示00000H-0FFFFH的實際內存單元.就是說一個段的大小在64Kb.
SUB1 DB 03H,35H 這個命令中,SUB1表示存放03H,35H這兩個數據的首地址,相當於C語言中字元串數組的首地址.假如這個SUB1在數據段中,有專門的數據段寄存器DS,它的實際地址就是DS:SUB1

F. 什麼是物理地址

Windows 2000 使用基於分頁機制的虛擬內存。每個進程有4GB的虛擬地址空間。基於分頁機制,這4GB地址空間的一些部分被映射了物理內存,一些部分映射硬碟上的交換文件,一些部分什麼也沒有映射。程序中使用的都是4GB地址空間中的虛擬地址。而訪問物理內存,需要使用物理地址。

下面我們看看什麼是物理地址,什麼是虛擬地址。

物理地址 (physical address): 放在定址匯流排上的地址。放在定址匯流排上,如果是讀,電路根據這個地址每位的值就將相應地址的物理內存中的數據放到數據匯流排中傳輸。如果是寫,電路根據這個地址每位的值就將相應地址的物理內存中放入數據匯流排上的內容。物理內存是以位元組(8位)為單位編址的。

虛擬地址 (virtual address): 4G虛擬地址空間中的地址,程序中使用的都是虛擬地址。

如果CPU寄存器中的分頁標志位被設置,那麼執行內存操作的機器指令時,CPU會自動根據頁目錄和頁表中的信息,把虛擬地址轉換成物理地址,完成該指令。比如 mov eax,004227b8h ,這是把地址004227b8h處的值賦給寄存器的匯編代碼,004227b8這個地址就是虛擬址。CPU在執行這行代碼時,發現寄存器中的分頁標志位已經被設定,就自動完成虛擬地址到物理地址的轉換,使用物理地址取出值,完成指令。對於Intel CPU 來說,分頁標志位是寄存器CR0的第31位,為1表示使用分頁,為0表示不使用分頁。對於初始化之後的 Win2k 我們觀察 CR0 ,發現第31位為1。表明Win2k是使用分頁的。

使用了分頁機制之後,4G的地址空間被分成了固定大小的頁,每一頁或者被映射到物理內存,或者被映射到硬碟上的交換文件中,或者沒有映射任何東西。對於一般程序來說,4G的地址空間,只有一小部分映射了物理內存,大片大片的部分是沒有映射任何東西。物理內存也被分頁,來映射地址空間。對於32bit的Win2k,頁的大小是4K位元組。CPU用來把虛擬地址轉換成物理地址的信息存放在叫做頁目錄和頁表的結構里。

物理內存分頁,一個物理頁的大小為4K位元組,第0個物理頁從物理地址 0x00000000 處開始。由於頁的大小為4KB,就是0x1000位元組,所以第1頁從物理地址 0x00001000 處開始。第2頁從物理地址 0x00002000 處開始。可以看到由於頁的大小是4KB,所以只需要32bit的地址中高20bit來定址物理頁。

頁表,一個頁表的大小為4K位元組,放在一個物理頁中。由1024個4位元組的頁表項組成。頁表項的大小為4個位元組(32bit),所以一個頁表中有1024個頁表項。頁表中的每一項的內容(每項4個位元組,32bit)高20bit用來放一個物理頁的物理地址,低12bit放著一些標志。

頁目錄,一個頁目錄大小為4K位元組,放在一個物理頁中。由1024個4位元組的頁目錄項組成。頁目錄項的大小為4個位元組(32bit),所以一個頁目錄中有1024個頁目錄項。頁目錄中的每一項的內容(每項4個位元組)高20bit用來放一個頁表(頁表放在一個物理頁中)的物理地址,低12bit放著一些標志。

對於x86系統,頁目錄的物理地址放在CPU的CR3寄存器中。

CPU把虛擬地址轉換成物理地址:
一個虛擬地址,大小4個位元組(32bit),包含著找到物理地址的信息,分為3個部分:第22位到第31位這10位(最高10位)是頁目錄中的索引,第12位到第21位這10位是頁表中的索引,第0位到第11位這12位(低12位)是頁內偏移。對於一個要轉換成物理地址的虛擬地址,CPU首先根據CR3中的值,找到頁目錄所在的物理頁。然後根據虛擬地址的第22位到第31位這10位(最高的10bit)的值作為索引,找到相應的頁目錄項(PDE,page directory entry),頁目錄項中有這個虛擬地址所對應頁表的物理地址。有了頁表的物理地址,根據虛擬地址的第12位到第21位這10位的值作為索引,找到該頁表中相應的頁表項(PTE,page table entry),頁表項中就有這個虛擬地址所對應物理頁的物理地址。最後用虛擬地址的最低12位,也就是頁內偏移,加上這個物理頁的物理地址,就得到了該虛擬地址所對應的物理地址。

一個頁目錄有1024項,虛擬地址最高的10bit剛好可以索引1024項(2的10次方等於1024)。一個頁表也有1024項,虛擬地址中間部分的10bit,剛好索引1024項。虛擬地址最低的12bit(2的12次方等於4096),作為頁內偏移,剛好可以索引4KB,也就是一個物理頁中的每個位元組。

一個虛擬地址轉換成物理地址的計算過程就是,處理器通過CR3找到當前頁目錄所在物理頁,取虛擬地址的高10bit,然後把這10bit右移2bit(因為每個頁目錄項4個位元組長,右移2bit相當於乘4)得到在該頁中的地址,取出該地址處PDE(4個位元組),就找到了該虛擬地址對應頁表所在物理頁,取虛擬地址第12位到第21位這10位,然後把這10bit右移2bit(因為每個頁表項4個位元組長,右移2bit相當於乘4)得到在該頁中的地址,取出該地址處的PTE(4個位元組),就找到了該虛擬地址對應物理頁的地址,最後加上12bit的頁內偏移得到了物理地址。

32bit的一個指針,可以定址范圍0x00000000-0xFFFFFFFF,4GB大小。也就是說一個32bit的指針可以定址整個4GB地址空間的每一個位元組。一個頁表項負責4K的地址空間和物理內存的映射,一個頁表1024項,也就是負責1024*4k=4M的地址空間的映射。一個頁目錄項,對應一個頁表。一個頁目錄有1024項,也就對應著1024個頁表,每個頁表負責4M地址空間的映射。1024個頁表負責1024*4M=4G的地址空間映射。一個進程有一個頁目錄。所以以頁為單位,頁目錄和頁表可以保證4G的地址空間中的每頁和物理內存的映射。

每個進程都有自己的4G地址空間,從 0x00000000-0xFFFFFFFF 。通過每個進程自己的一套頁目錄和頁表來實現。由於每個進程有自己的頁目錄和頁表,所以每個進程的地址空間映射的物理內存是不一樣的。兩個進程的同一個虛擬地址處(如果都有物理內存映射)的值一般是不同的,因為他們往往對應不同的物理頁。

4G地址空間中低2G,0x00000000-0x7FFFFFFF 是用戶地址空間,4G地址空間中高2G,
0x80000000-0xFFFFFFFF 是系統地址空間。訪問系統地址空間需要程序有ring0的許可權。

閱讀全文

與匯編什麼叫物理地址相關的資料

熱點內容
word中化學式的數字怎麼打出來 瀏覽:457
乙酸乙酯化學式怎麼算 瀏覽:1128
沈陽初中的數學是什麼版本的 瀏覽:1043
華為手機家人共享如何查看地理位置 瀏覽:775
一氧化碳還原氧化鋁化學方程式怎麼配平 瀏覽:607
數學c什麼意思是什麼意思是什麼 瀏覽:1095
中考初中地理如何補 瀏覽:1045
360瀏覽器歷史在哪裡下載迅雷下載 瀏覽:473
數學奧數卡怎麼辦 瀏覽:1075
如何回答地理是什麼 瀏覽:797
win7如何刪除電腦文件瀏覽歷史 瀏覽:837
大學物理實驗干什麼用的到 瀏覽:1184
二年級上冊數學框框怎麼填 瀏覽:1392
西安瑞禧生物科技有限公司怎麼樣 瀏覽:543
武大的分析化學怎麼樣 瀏覽:974
ige電化學發光偏高怎麼辦 瀏覽:1068
學而思初中英語和語文怎麼樣 瀏覽:1296
下列哪個水飛薊素化學結構 瀏覽:1131
化學理學哪些專業好 瀏覽:1216
數學中的棱的意思是什麼 瀏覽:749