⑴ 一次間接定址范圍怎麼計算
是2的16次方。
舉個最簡單的例子,某個程序要訪問內存,以16位為例。採用間接定址。假設,地址碼是4位2進制,如果是1對1的關系,4位地址碼最多是2的4次方內存單元。只用一個1個內存就能訪問更大的單元。//先訪問0001H單元內存mov 0001H 0000H //將立即數0001H放。
(1)立即定址需要訪問幾次內存擴展閱讀:
由於程序中的指令序列通常是順序排列的,對於順序推進的指令序列,採用程序計數器PC加1的方式自動形成下一條指令的地址。當程序發生轉移時,就不能採用上述方式,此時把指令地址的形成轉換為操作數地址的定址。把指令不當指令信息,而當作操作數信息來處理、按操作數的定址方式獲得指令地址。
⑵ 在無快表的段頁式存儲管理系統中,為獲得一條指令需要訪問內存多少次每次取出什麼內容
兩次,第一次訪問內存中的頁表,找到指定頁的物理塊號,將塊號與頁內偏移量拼接,形成物理地址,第二次訪問,取得數據
⑶ 段頁式儲存系統中,為了獲得一條指令或數據,需幾次訪問內存
至少需要訪問三次以上的內存:
第一次是由段表地址寄存器得段表始址後訪問段表,由此取出對應段的頁表在內存中的地址。
第二次則是訪問頁表得到所要訪問的物理地址。
第三次才能訪問真正需要訪問的物理單元。
⑷ C++對未對齊的內存訪問為什麼要訪問兩次。講深點。謝謝
我是這樣理解的:
假設地址0x90000000-0x90000003存放int型數據,然後cpu用整型讀寫這個地址時,因為這個地址是32位對齊的,所以cpu直接用0x90000000訪問即可,只訪問一次。
假設地址0x90000002-0x90000005存放int型數據,然後cpu用整型讀寫這個地址時,因為這個地址不是32位對齊的,所以cpu先用0x90000000訪問操作數據的高兩個位元組,再用0x90000004操作數據的低兩位位元組,需要訪問兩次。
⑸ 在頁式存儲器管理中 當執行一段程序時 至少訪問幾次內存
查找頁表,之後對比值,應該是兩次啊。不知道為什麼樓上說是3次,3次是段頁式管理。
⑹ 匯編語言定址方式以及物理地址
1,MOV
AX,OABH
立即定址方式,0ABH直接放在代碼中。
2,
MOV
AX,BX
寄存器定址方式,1100H放在BX中,直接送AX,不需訪問內存來取操作數。
3,MOV
AX,[100H]
直接定址方式,操作數放在DS*10H+100H即20100H開始的物理內存中,送AX
4,MOV
AX,VAL
直接定址方式,操作數放在DS*10H+3000H即23000H開始的物理內存中,送AX
5,MOV
AX,[BX][SI]
基址變址定址方式,BX是基址寄存器,SI是變址寄存器,操作數放在DS*10H+1100H+1000H即22100H開始的物理內存中,送AX
⑺ 段頁式管理每一次數據要訪問幾次內存
一般需要訪問三次以上的內存:
第一次是由段表地址寄存器得段表始址後訪問段表,由此取出對應段的頁表在內存中的地址。 第二次則是訪問頁表得到所要訪問的物理地址。 第三次才能訪問真正需要訪問的物理單元。
分別為2、2、3次,因為他的檢索方法不同,段頁式訪問次數多,但是效率高。
三 段頁式管理的實現原理
1 虛地址的構成
一個進程中所包含的具有獨立邏輯功能的程序或數據仍被劃分為段,並有各自的段號s。這反映相繼承了段式管理的特徵。其次,對於段s中的程序或數據,則按照一定的大小將其劃分為不同的頁。和頁式系統一樣,最後不足一頁的部分仍佔一頁。這反映了段頁式管理中的頁式特徵。從而,段頁式管理時的進程的虛擬地址空間中的虛擬地址由三部分組成:即段號s,頁號P和頁內相對地址d。虛擬空間的最小單位是頁而不是段,從而內存可用區也就被劃分成為著干個大小相等的頁面,且每段所擁有的程序和數據在內存中可以分開存放。分段的大小也不再受內存可用區的限制。
2 段表和頁表
為了實現段頁式管理,系統必須為每個作業或進程建立一張段表以管理內存分配與釋放、缺段處理、存儲保護相地址變換等。另外,由於一個段又被劃分成了若干頁,每個段又必須建立一張頁表以把段中的虛頁變換成內存中的實際頁面。顯然,與頁式管理時相同,頁表中也要有相應的實現缺頁中斷處理和頁面保護等功能的表項。另外,由於在段頁式管理中,頁表不再是屬於進程而是屬於某個段,因此,段表中應有專項指出該段所對應頁表的頁表始址和頁表長度。
3 動態地址變換過程
在一般使用段頁式存儲管理方式的計算機系統中,都在內存中辟出一塊固定的區域存放進程的段表和頁表。因此,在段頁式管理系統中,要對內存中指令或數據進行一次存取的話,至少需要訪問三次以上的內存:
第一次是由段表地址寄存器得段表始址後訪問段表,由此取出對應段的頁表在內存中的地址。
第二次則是訪問頁表得到所要訪問的物理地址。
第三次才能訪問真正需要訪問的物理單元。
⑻ 分頁存儲管理方式中,要按照給定的邏輯地址進行讀/寫時,需要訪問幾次內存
如果是單級頁表的話,需要2次,一次訪問內存中的頁表,第二次才訪問內存
有快表的話是1次或2次
⑼ 在頁式存儲管理系統中,當訪問主存中的一條指令或數據時,需要訪問多少次主存段式存儲呢
1)頁式存儲管理中,訪問指令或數據時,首先要訪問內存中的頁表,查找到指令或數據所在頁面對應的頁表項,然後再根據頁表項查找訪問指令或數據所在的內存頁面。需要訪問內存兩次。
段式存儲管理同理,需要訪問內存兩次。
段頁式存儲管理,首先要訪問內存中的段表,然後再訪問內存中的頁表,最後訪問指令或數據所在的內存頁面。需要訪問內存三次。
對於比較復雜的情況,如多級頁表,若頁表劃分為N級,則需要訪問內存N+1次。若系統中有快表,則在快表命中時,只需要一次訪問內存即可。