Ⅰ 立即定址方式中物理地址值怎麼算
你說的是匯編裡面的立即數定址吧。即 MOV EAX,0FFH之類的
好像不會涉及到物理地址,因為這個數0FFH是在代碼段中的,不是在內存中的。就是說在OFFH中不存在物理地址。如果說OFFH在那個地方,應該在數據段中指令代碼中。
Ⅱ 源操作數為立即數定址的物理地址怎麼求 基址變址的物理地址怎麼求
你好
1 寄存器間接定址
2 基址-變址相定址
3 ?
Ⅲ 8086/8088有哪些定址方式如果操作數在內存中,如何確定其物理地址
摘要 指令結構
Ⅳ 立即數定址的有效地址和物理地址分別是怎麼求的
16位的方法
樓下說了
段基地址*16+段內偏移
32位是平坦定址,直接給出32位虛擬地址,要找到物理地址那在ring3許可權是不可能的
Ⅳ 匯編語言 物理地址問題
這個答案是錯誤的,正確的是:7E814H。
1、先計算數據區末字的偏移地址
16個字佔20H位元組的內存空間,0DDF6H+20H=DE16H,這是末字數據後面的偏移地址,末字的偏移地址為DE16H-2=DE14H。
2、再計算末字的物理地址
物理地址=段地址*10H+偏移地址=70A0H+DE14H=7E814H。
Ⅵ 匯編語言定址方式以及物理地址
1.直接將0ABH放入AX寄存器2.直接將BX寄存器數據放入AX寄存器3.默認定址方式,將段地址2000H(DS寄存器)放入AX寄存器4.指定定址方式,以BX寄存器內容為段地址SI寄存器為偏移地址的數據放入AX寄存器里。段地址加偏移地址等於物理地址,列:段地址2000H進一位等於20000H加偏移地址0001H等於物理地址20001H。具體的忘了,你可以看一下王爽的書,裡面有的
Ⅶ 立即定址方式中,怎樣確定操作數的物理地址
w物理地址是由段地址和偏移地址構成的,段地址左移4位再加上偏移地址。0ABH是偏移地址,段地址是默認的,例如,段地址是6000H 偏移地址是3000H 哪么物理地址是60000+3000=63000.
Ⅷ 微機原理尋地址方式和求物理地址。
mov es:[si], ax 中目的操作數為 寄存器間接定址,其物理地址=es*16(即左移4位)+si=20000h+0200h=20200h 。
從已有條件看,ax 為源操作數,但其 未知。
Ⅸ 微機原理問題:請問立即定址方式是否需要計算物理地址
立即數保存在程序本身當前命令處,調用起來無需多慮,除非你想跳過立即數定址其他,用立即數佔用位元組量換算一下就行了。
Ⅹ 什麼是邏輯地址什麼是物理地址在實模式下,如何求存儲器的物理地址假設一個
邏輯地址和物理地址的區別是:
邏輯地址(Logical Address) 是指由程序產生的與段相關的偏移地址部分。例如,你在進行C語言指針編程中,可以讀取指針變數本身值(&操作),實際上這個值就是邏輯地址,它是相對於你當前進程數據段的地址,不和絕對物理地址相干。只有在Intel實模式下,邏輯地址才和物理地址相等(因為實模式沒有分段或分頁機制,Cpu不進行自動地址轉換);邏輯也就是在Intel 保護模式下程序執行代碼段限長內的偏移地址(假定代碼段、數據段如果完全一樣)。應用程序員僅需與邏輯地址打交道,而分段和分頁機制對您來說是完全透明的,僅由系統編程人員涉及。應用程序員雖然自己可以直接操作內存,那也只能在操作系統給你分配的內存段操作。
物理地址(Physical Address) 是指出現在CPU外部地址匯流排上的定址物理內存的地址信號,是地址變換的最終結果地址。如果啟用了分頁機制,那麼線性地址會使用頁目錄和頁表中的項變換成物理地址。如果沒有啟用分頁機制,那麼線性地址就直接成為物理地址了。
虛擬內存(Virtual Memory)是指計算機呈現出要比實際擁有的內存大得多的內存量。因此它允許程序員編制並運行比實際系統擁有的內存大得多的程序。這使得許多大型項目也能夠在具有有限內存資源的系統上實現。一個很恰當的比喻是:你不需要很長的軌道就可以讓一列火車從上海開到北京。你只需要足夠長的鐵軌(比如說3公里)就可以完成這個任務。採取的方法是把後面的鐵軌立刻鋪到火車的前面,只要你的操作足夠快並能滿足要求,列車就能象在一條完整的軌道上運行。這也就是虛擬內存管理需要完成的任務。在Linux 0.11內核中,給每個程序(進程)都劃分了總容量為64MB的虛擬內存空間。因此程序的邏輯地址范圍是0x0000000到0x4000000。有時我們也把邏輯地址稱為虛擬地址。因為與虛擬內存空間的概念類似,邏輯地址也是與實際物理內存容量無關的。 邏輯地址與物理地址的「差距」是0xC0000000,是由於虛擬地址->線性地址->物理地址映射正好差這個值。這個值是由操作系統指定的。