當前位置:首頁 » 文件傳輸 » 不需要訪問內存的尋找方式
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

不需要訪問內存的尋找方式

發布時間: 2022-06-11 01:59:06

㈠ 為什麼匯編語言中有那麼多定址方式 為什麼數據交換不能直接從內存到內存

匯編有各種定址方式是對應硬體實際操作生成的,
硬體上為了訪問不同的存儲器而要對地址線和數據線做相應的控制,
這些控制動作被分化為相應的定址方式,每套動作,對應著一個定址方式。

目前的存儲結構,內存的地址線是並聯的,而普通的內存只有一套地址線、數據線,讀與寫操作不能同時進行,這樣就只能找個緩存來作為中轉,把讀寫的動作做成順序操作。

如果你的系統設計成可以使用早先某些高端顯卡上用的WRAM內存,那也能做到將數據直接從內存復制到內存而不經過CPU中轉。

㈡ cpu訪問內存為什麼要段

所以說,程序分段是首先是為了重定位,我說的是首先,下面還有理由呢。

偏移地址也要存入寄存器,而那時的寄存器是16位的,也就是一個段最多可以訪問到64K。而那時的內存再小也有1M呢,這樣通過改變段基址的方式,由一個段變為另一個段,就像一個段在內存中飄移,採用這種在內存中來回挪位置的方式來訪問到任意內存位置。

所以說,程序分段又是為了將大內存分成可以訪問的小段,通過這樣變通的方法便能夠訪問到所有內存了。

但想一想,1M內存是2的20次方,即需要20位的地址才能訪問到,如何做到16位寄存器訪問20位地址空間呢?

在8086的定址方式中,有基址定址,這是用基址寄存器bx或bp來提供偏移地址。如mov [bx],0x5;這條指令便是將立即數0x5存入ds:bx指向的內存。

大家看,bx寄存器是16位的,它最大隻能表示0~0xFFFF的地址空間,即64K,也就是單一的一個寄存器無法表示20位的地址空間——1M。也許有人會說,段基址和段內偏移地址都搞到最大,都為0xFFFF,對不起,即使不溢出的話,其結果也只是由16位變成了17位,即兩個n位的數字無論多大,其相加的結果也超不過n+1位,因為即使是兩個相同的數相加,其結果相當於乘以2,也就是左移一位而已,依然無法訪問20位的地址空間。也許有同學又有好建議了:cpu的定址方式又不是僅僅這一種,上面的限制是因為寄存器是16位,只要不全部通過寄存器不就行了嗎。既然段寄存器必須得用,那就在偏移地址上下功夫,不要把偏移地址寫在寄存器里了,把它直接寫成20位立即數不就行啦。如mov ax,[0x12345],這樣最終的地址是ds+0x12345,肯定是20位,解決啦。不錯,這種是直接定址方式,至少道理上講得通,這是通過編程技巧來突破這一瓶頸,能想到這一點我覺得非常nice。但是做為一個嚴謹的cpu,既然宣稱支持了通過寄存器來定址,那就要能夠自圓其說才行,不能靠程序員的軟實力來克服cpu自身的缺陷。於是,一個大膽的想法出現了。

16位的寄存器最多訪問到64k大小的內存。雖然1M內存中可容納1M/64k=16個最大段,但這只是可以容納而已,並不是說可以訪問到。16位的寄存器超過0xffff後將會回卷到0,又從0重新開始。20位寬度的內存地址空間必然只能由20位寬度的地址來訪問。問題又來了,在當時只有16位寄存器的情況下是如何做到訪問20位地址空間的呢。

這是cpu設計者在地址處理單元中動了手腳,該地址部件接到「段基址+段內偏移地址」的地址後,自動將段基址乘以16,即左移了4位,然後再和16位的段內偏移地址相加,這下地址變成了20位了吧,行啦,有了20位的地址便可以訪問20位的空間,可以在1M空間內自由翱翔了。

明天繼續。

㈢ 訪問內部RAM單元可以採用哪些定址方式

1、隱含定址:這種類型的指令,不是明顯地給出操作數的地址。而是在指令中隱含著操作數的地址。

2、立即定址:指令的地址欄位指出的不是操作數的地址,而是操作數本身。

3、直接定址:在指令格式的地址的欄位中直接指出操作數在內存的地址。由於操作數的地址直接給出而不需要經過某種變換。

4、間接定址:在間接定址的情況下,指令地址欄位中的形式地址不是操作數的真正地址,而是操作數地址的指示器,或者說此形式地址單元的內容才是操作數的有效地址。



(3)不需要訪問內存的尋找方式擴展閱讀:

在存儲器中,操作數或指令字寫入或讀出的方式,有地址指定方式、相聯存儲方式和堆棧存取方式。幾乎所有的計算機,在內存中都採用地址指定方式。當採用地址指定方式時,形成操作數或指令地址的方式。

定址方式分為兩類,即指令定址方式和數據定址方式,前者比較簡單,後者比較復雜。值得注意的是,在傳統方式設計的計算機中,內存中指令的定址與數據的定址是交替進行的。

㈣ 指出下列各指令中定址方式的錯誤,並說明錯誤的原因

1、MOV 100H , AX ,立即數不能當做目的地。

2、MOV AH , 1000,AH 容納不下1000。

3、MOV [CX] , AH CX,不能當做地址指針。

4、ADD AX , BL 參加加法運算的數字位數,必須相同,現在AX、BL位數不同。

如:MOV AX,#5678H 注意:立即數只能作為源操作數,不能作為目的操作數。

指令的地址欄位指出的不是操作數的地址,而是操作數本身,這種定址方式稱為立即定址。立即定址方式的特點是指令執行時間很短,因為它不需要訪問內存取數,從而節省了訪問內存的時間。

(4)不需要訪問內存的尋找方式擴展閱讀:

各指令中定址方式的原理:

1、順序定址方式

由於指令地址在內存中按順序安排,當執行一段程序時,通常是一條指令接一條指令地順序進行。也就是說,從存儲器取出第1條指令,然後執行這條指令;接著從存儲器取出第2條指令,再執行第二條指令;接著再取出第3條指令。

這種程序順序執行的過程,稱為指令的順序定址方式。為此,必須使用程序計數器(又稱指令計數器)PC來計數指令的順序號,該順序號就是指令在內存中的地址。

2、跳躍定址方式

當程序轉移執行的順序時,指令的定址就採取跳躍定址方式。所謂跳躍,是指下條指令的地址碼不是由程序計數器給出,而是由本條指令給出。注意,程序跳躍後,按新的指令地址開始順序執行。因此,程序計數器的內容也必須相應改變,以便及時跟蹤新的指令地址。

注意是否跳躍可能受到狀態寄存器的操作數的控制,而跳躍到的地址分為絕對地址(由標記符直接得到)和相對地址(對於當前指令地址的偏移量),跳躍的結果是當前指令修改PC程序計數器的值,所以下一條指令仍是通過程序計數器PC給出。

㈤ 不需要訪問內存的定址方式有哪些

立即定址,直接定址,寄存器定址,寄存器直接定址,寄存器間接定址?

㈥ 計算機題目,根據指令定址方式哪幾種指令執行時間訪問內存一次,哪幾種指令執行需訪問內存兩次

指令進行有三個階段:取指令;解碼;執行;
立即定址在取指令階段,訪問一次內存;在執行階段,不需要訪問內存;(一次)
直接定址在取指令階段,訪問一次內存;在執行階段,訪問一次內存;(兩次)
間接定址在取指令階段,訪問一次內存;在執行階段,訪問兩次內存;(三次)
寄存器直接定址在取指令階段,訪問一次內存;在執行階段,不需要訪問內存;(一次)
寄存器間接定址在取指令階段,訪問一次內存;在執行階段,訪問一內存;(兩次)
注意一般問訪問內存次數是指在執行階段;

㈦ 高手請進

虛擬內存:比如我的內存128,,分給集成顯卡8M,開XP用掉80,火狐用掉30,這時候我想開迅雷,但是迅雷需要30M內存,內存不夠了!操作系統就把火狐的30M暫時儲存到硬碟上,儲存需要的硬碟空間就叫虛擬內存。

緩存一般來說是一級緩存和二級緩存,是CPU內集成的很少的儲存空間。一級緩存對CPU性能幾乎無影響。一級、二級緩存和CPU核心速度相等,內存讀寫速度遠遠慢於二級緩存。而計算機有個原理:CPU80%的時間在處理20%的數據,所以就把這很少但最常用的數據存放在二級緩存中,以提高性能。

AMD k10架構的那個處理器有三級緩存。

㈧ 計算機組成原理中的RR,SS,RS型指令分別指什麼指令

寄存器-寄存器(RR)型指令:從寄存器中取操作數,把操作結果放到另一寄存器中,不需要訪問內存存儲器,因此速度快;

存儲器—存儲器(SS)型指令:執行此類指令,既要訪問內存單元,又要訪問寄存器。

寄存器-存儲器(RS)型指令:執行此類指令,既要訪問內存單元,又要訪問寄存器。

16MB=16M×8與8m×16位的存儲容量是相等的,現在存儲字長是16位,因此我可以把訪問16MB等價與訪問8M×16位的。

直接定址范圍由形式地址的位數確定,8m的地址范圍需要2的23次方,已有形式地址a為7,表示2的7次方,不夠,所以採用雙字長指令,原來指令格式下面添一行,長度為16位(23-7)。

(8)不需要訪問內存的尋找方式擴展閱讀:

在計算機科學中,機器指令是用機器字來表示的,表示一條指令的機器字,就稱為指令字,通常簡稱指令。指令格式,則是指令字用二進制代碼表示的結構形式,通常由操作碼和地址碼組成。

操作碼欄位表示指令的操作特性與功能,地址碼欄位通常指定參與操作的操作數的地址。非變址命令,也可以稱之為非變址指令,是指CPU執行命令時,指令的定址方式。

定址即尋找操作數或轉移指令中的轉移地址。所有具有操作數的指令.都要涉及如何尋找操作數存放地址的問題,只有確定了操作數的存放地址,才能根據指令的操作碼,對指令的操作數進行相應的加工。

定址方式就是規定如何對指令中操作數欄位進行解釋以找到操作數的方法或是在轉移類指令中確定轉移的目標地址的方法。前者稱為尋找操作數的定址方式,後者稱為尋找指令地址的定址方式。在計算機中,定址方式一般分為指令定址和數據定址。

㈨ 不需要訪問內存的定址方式是

B立即數定址

立即定址:所需的一個操作數在指令的地址欄位部分直接給出。
優點:指令執行時間很短,不需要訪問內存取數,從而節省了訪問內存的時間
缺點:形式地址的位數限制的操作數的范圍

㈩ 8086cpu指令中,執行時不需要訪問的內存是 A。MOV AL,[BX] B.MOV BH,CH C.ADD DL,[0050H] D.PUSH AX

A答案MOV AL,[BX]是把AL的內容存放到BX指示的內存中,要訪問內存
B答案MOV BH,CH 因為BH,CH都屬於通用寄存器,所以不訪存
C答案ADD DL,[0050h]就是將地址為0050h的內存內容加到DL上,要訪存
D答案push ax就是將堆棧的內容push到ax上,堆棧應該是內存的內容吧