『壹』 假定指令中地址碼所給出的是操作數的有效地址,則該指令採用_____定址方式。
應該是直接定址
『貳』 變址定址方式中,操作數的有效地址是______。
變址定址方式中,操作數的有效地址是變址寄存器內容加上形式地址。
把變址寄存器的內容(通常是首地址)與指令地址碼部分給出的地址(通常是位移量)之和作為操作數的地址來獲得所需要的操作數就稱為變址定址。
在存儲器中,操作數或指令字寫入或讀出的方式,有地址指定方式、相聯存儲方式和堆棧存取方式。幾乎所有的計算機,在內存中都採用地址指定方式。當採用地址指定方式時,形成操作數或指令地址的方式稱為定址方式。
定址方式分為兩類,即指令定址方式和數據定址方式,前者比較簡單,後者比較復雜。值得注意的是,在傳統方式設計的計算機中,內存中指令的定址與數據的定址是交替進行的。
(2)假定指令地址碼給出的操作數的存儲地址擴展閱讀:
一、ip定址的方式
每一TCP/IP主機通過一個邏輯IP地址辨別。這個IP地址是一個Internet層地址,不依賴數據連接層地址(如網路介面卡的MAC地址)。一個唯一的IP地址需要每個主機和網路成分採用TCP/IP進行通信。
IP地址辨別網路上系統的位置和用街道地址辨別辨別城市街區的一座房屋一樣採用同樣的方式。正如街道地址必須辨別一個唯一的住處,一個IP地址必須是完全唯一的,並有著一個相同的格式。
每個IP地址包含一個網路ID 和一個主機ID。
網路ID (也叫做網路地址)通過IP路由器辨別位於相同物理網路范圍的系統。所有在相同物理網路上的系統必須有同樣的網路ID。網路ID在網路上應該是獨一無二的。
主機ID(也叫做主機地址)在一網路內辨別工作站,伺服器,路由器,或別的TCP/IP主機。每個主機的地址對網路ID來說是獨一無二的。
二、變址定址方式
變址定址方式與基址定址方式計算有效地址的方法很相似,它把CPU中某個變址寄存器的內容與偏移量D相加來形成操作數有效地址。
但使用變址定址方式的目的不在於擴大定址空間,而在於實現程序塊的規律變化。為此,必須使變址寄存器的內容實現有規律的變化(如自增1、自減1、乘比例系數)而不改變指令本身,從而使有效地址按變址寄存器的內容實現有規律的變化。
『叄』 計算機組成原理第7章習題指導
第7章習題指導
一、假設指令字長為16位,操作數的地址碼為6位,指令有零地址、一地址、二地址三種格式。
1、設操作碼固定,若零地址指令有P種,一地址指令有Q種,則二地址指令最多有幾種:
解答:根據操作數地址碼為6位,則二地址指令中操作碼的位數為16 – 6 – 6 = 4。這4位操作碼可有24=16種操作。由於操作碼固定,則除去了零地址指令P種,一地址指令Q種,剩下二地址指令最多有16 – P – Q種。
2、採用擴展操作碼技術,若二地址指令有X種,零地址指令有Y種,則一地址指令最多有幾種:
解答:採用擴展操作碼技術,操作碼位數可變,則二地址、一地址和零地址的操作碼長度分別為4位、10位和16位。可見二地址指令操作碼每減少一種,就可多構成26種一地址指令操作碼;一地址指令操作碼每減少一種,就可多構成26種零地址指令操作碼。
因二地址指令有X種,則一地址指令最多有24 X×26種。設一地址指令有M種,則零地址指令最多有24 X×26 M()[()]×26種。根據題中給出零地址指令有Y種,即Y=(24 X)×26 M[]×26,則一地址指令 M=24 X×26 Y×26。
二、設相對定址的轉移指令佔3個位元組,第一位元組為操作碼,第二、三位元組為相對位移量(補碼表示),而且數據在存儲器中採用以低位元組地址為字地址的存放方式。每當CPU從存儲器取出一個位元組時,即自動完成 (PC) + 1 → PC。
1、若PC當前值為240(十進制),要求轉移到290(十進制),則轉移指令的第二、三位元組的機器代碼是:
解答:PC當前值為240,該指令取出後PC值為243,要求轉移到290,即相對位移量為290 –243 = ()47,轉換成補碼為2FH。由於數據在存儲器中採用以低位元組地址為字地址的存放方式,故該轉移指令的第二位元組為2FH,第三位元組為00H。
2、若PC當前值為240(十進制),要求轉移到200(十進制),則轉移指令的第二、三位元組的機器代碼是:
解答:PC當前值為240,該指令取出後PC值為243,要求轉移到200,即相對位移量為200 – 243= – 43,轉換成補碼為D5H,由於數據在存儲器中採用以低位元組地址為字地址的存放方式,故該轉移指令的第二位元組為D5H,第三位元組為FFH。
三、設某機共能完成110種操作,CPU有8個通用寄存器(16位),主存容量為4M字,採用寄存器 存儲器型指令。
1、欲使指令可直接訪問主存的任一地址,指令字長應取多少位,畫出指令格式:
解答:欲使指令可直接訪問4M字存儲器的任一單元,採用寄存器 存儲器型指令,該機指令應包括22位的地址碼、3位寄存器編號和7位操作碼,即指令字長取22 + 3 + 7 =32位,指令格式為7322A。
2、若在上述設計的指令字中設置一定址特徵位X,且X = 1表示某個寄存器作基址寄存器,畫出指令格式。試問基址定址可否訪問主存的任一單元,為什麼,如不能,提出一種方案,使其可訪問主存的任一位置:
解答:上述指令格式中增設一定址特徵位,且X = 1表示某個寄存器作基址寄存器RB。其指令格式為731318XRB由於通用寄存器僅16位,形式地址18位,不足以覆蓋4M地址空間。
可將RB寄存器內容左移6位,低位補0,形成22位基地址,然後與形式地址相加,所得的有效地址即可訪問4M字存儲器的任一單元。
3、若主存容量擴大到4G字,且存儲字長等於指令字長,則在不改變上述硬體結構的前提下,可採用什麼方法使指令可訪問存儲器的任一位置:
解答:若主存容量擴大到4G字,且存儲字長等於指令字長,則在不改變上述硬體結構的前提下,採用一次間址即可訪問存儲器的任一單元,因為間址後得到的有效地址為32位,232=4G。
四、某機主存容量為4M×16位,且存儲字長等於指令字長,若該機指令系統能完成97種操作,操作碼位數固定,且具有直接、間接、變址、基址、相對、立即等六種定址方式。
1、畫出一地址指令格式並指出各欄位的作用:
解答:一地址指令格式為 OP 操作碼欄位,共7位,可反映97種操作;M 定址方式特徵欄位,共3位,可反映6種定址方式;A 形式地址欄位,共16 – 7 – 3 = 6位。
2、該指令直接定址的最大范圍:
解答:直接定址的最大范圍為26 = 64。
五、設某機配有基址寄存器和變址寄存器,採用一地址格式的指令系統,允許直接和間接定址,且指令字長、機器字長和存儲字長均為16位。
1、若採用單字長指令,共能完成105種操作,則指令可直接定址的范圍是多少。一次間址的定址范圍是多少,畫出其指令格式並說明各欄位的含義:
在單字長指令中,根據能完成105種操作,取操作碼7位。因允許直接和間接定址,且有基址寄存器和變址寄存器,故取2位定址特徵位,其指令格式為:727 其中OP為操作碼,可完成105種操作.
M為定址特徵,可反映四種定址方式;AD為形式地址。 這種指令格式可直接定址27 = 128,一次間址的定址范圍是216 = 65536。
2、若存儲字長不變,可採用什麼方法直接訪問容量為16MB的主存:
容量為16MB的存儲器,正好與存儲字長為16位的8M存儲器容量相等,即16MB=8M×16位。欲使指令直接訪問16MB 的主存,可採用雙字長指令。
其操作碼和定址特徵位均不變,其格式為7 2 7 AD1AD2,其中形式地址為AD1∥AD2,7+16=23位。223=8M,即可直接訪問主存的任一位置。
『肆』 指令和數據都存於存儲器中,計算機如何區分它們
計算機區分指令和數據有以下2種方法:
1、通過不同的時間段來區分指令和數據,即在取指令階段(或取指微程序)取出的為指令,在執行指令階段(或相應微程序)取出的即為數據。
2、通過地址來源區分,由PC提供存儲單元地址的取出的是指令,由指令地址碼部分提供存儲單元地址的取出的是操作數。
存儲器中的每段存儲空間都會有一個地址,每個指令都包括一段操作數和一段空間地址,cpu會根據操作數去處理地址所指的數據。
一般計算機先讀取存儲器最開始的內容(這一部分是指令),然後載入操作系統(先是LOADER)後由操作系統對硬碟文件系統結構(即是數據)以判斷其他數據和指令的位置
(4)假定指令地址碼給出的操作數的存儲地址擴展閱讀:
構成存儲器的存儲介質,存儲元,它可存儲一個二進制代碼。由若干個存儲元組成一個存儲單元,然後再由許多存儲單元組成一個存儲器。一個存儲器包含許多存儲單元,每個存儲單元可存放一個位元組(按位元組編址)。
每個存儲單元的位置都有一個編號,即地址,一般用十六進製表示。一個存儲器中所有存儲單元可存放數據的總和稱為它的存儲容量。
假設一個存儲器的地址碼由20位二進制數(即5位十六進制數)組成,則可表示2的20次方,即1M個存儲單元地址。每個存儲單元存放一個位元組,則該存儲器的存儲容量為1MB。
動態存儲器每片只有一條輸入數據線,而地址引腳只有8條。為了形成64K地址,必須在系統地址匯流排和晶元地址引線之間專門設計一個地址形成電路。
使系統地址匯流排信號能分時地加到8個地址的引腳上,藉助晶元內部的行鎖存器、列鎖存器和解碼電路選定晶元內的存儲單元,鎖存信號也靠著外部地址電路產生。
當要從DRAM晶元中讀出數據時,CPU首先將行地址加在A0-A7上,而後送出RAS鎖存信號,該信號的下降沿將地址鎖存在晶元內部。接著將列地址加到晶元的A0-A7上,再送CAS鎖存信號,也是在信號的下降沿將列地址鎖存在晶元內部。然後保持WE=1,則在CAS有效期間數據輸出並保持。
當需要把數據寫入晶元時,行列地址先後將RAS和CAS鎖存在晶元內部,然後,WE有效,加上要寫入的數據,則將該數據寫入選中的存貯單元。
由於電容不可能長期保持電荷不變,必須定時對動態存儲電路的各存儲單元執行重讀操作,以保持電荷穩定,這個過程稱為動態存儲器刷新。
PC/XT機中DRAM的刷新是利用DMA實現的。首先應用可編程定時器8253的計數器1,每隔1⒌12μs產生一次DMA請求,該請求加在DMA控制器的0通道上。當DMA控制器0通道的請求得到響應時,DMA控制器送出到刷新地址信號,對動態存儲器執行讀操作,每讀一次刷新一行。
參考資料來源:網路-存儲器
『伍』 操作碼和操作數保存在什麼地方
操作碼和地址碼都應存入指令寄存器
指令寄存器(IR,Instruction Register),是臨時放置從內存裡面取得的程序指令的寄存器,用於存放當前從主存儲器讀出的正在執行的一條指令。
『陸』 「地址碼是指令中給出源操作數地址或運算結果的目的地址的有關信息部分」這句話對嗎
地址碼是指令中給出「源操作數地址」或「運算結果的目的地址」的有關信息部分
這句話對嗎?
對。地址碼,確實就是「「關於地址」」的信息部分。
還有一句話:地址匯流排上既可以傳送地址信息,也可傳送控制信息和其他信心。
不對。
地址匯流排,只是傳送地址信息。
控制信息,由控制匯流排傳送。
其他信心,要有另外的線,來傳送。
『柒』 什麼是直接定址,什麼是間接定址,什麼是存儲器定址
直接定址方式:
指令的地址碼部分直接給出的不是操作數,而是操作數的存儲器地址,這種方式稱為直接定址方式。根據指令地址碼部分給出的直接地址A就可以從存儲器中讀出所需要的操作數。這種定址方式簡單,直觀,也便於硬體實現,但是隨著計算機的存儲器容量不斷擴大,所需要的地址碼越來越長,勢必造成指令的一部分,不能修改,故只能用來訪問固定存儲器單元。
如果匯編原程序中跳轉指令中使用的是標號,編譯後是直接跳轉,如果使用了寄存器參量的就是間接跳轉的了。
只能說內存定址的大小與CPU位數有關,但不完全有CPU位數決定,這里有人為的設置,同為64位的CPU,定址大小、方式也是不一樣的,舉個例子:
人為限制內存地址用8位2進制數表示,那他的定址大小是2的8次方,就是256,也就是可以支持256比特大小的內存,以此類推,所以要看你的CPU是怎麼定義內存地址的。
如果你為了玩游戲沒必要關心這些,只要知道怎麼配置快就行了,如果你想學點東西,可以找本書看看,這不是什麼復雜的問題,在電子電路中是比較基礎的東西,因為不知道定址方式是無法設計電路和編程的。
你可以去INTEL網站下技術白皮書,裡面很詳細
『捌』 計算機組成原理定址方式例題
1 變址定址,操作數的有效地址是變址寄存器的內容+指令地址碼的部分.23A0+001A=23BAH,對應的內容就是1700H.
2 間接定址方式,指令的操作碼部分給出的是操作數的有效地址的地址,也就是說001AH的內容是操作數的有效地址,001A中是23A0H.地址為23A0H中的內容就是操作數,也就是2600H.
3 轉移指令採用的是相對定址,是地址碼部分+PC的值形成有效地址.當前指令的地址為是1F05H,也就是PC的值.按照答案看,取出當前的指令後,PC的值會加2.就變成了1F07H,再加上001A,就是1F21H.這就是轉移的地址.但是感覺題目給的不完整啊.PC的值怎麼變化要給出具體的規定.本題是指令取出1個位元組,PC+1.
『玖』 計算機指令的地址碼和操作數是不是一個概念
操作數、操作碼、地址碼區別
對象:
操作數;
操作碼;
地址碼
定義:
操作對象;
進行什麼操作(操作的代號);
存儲器中存儲單元的編號
以運東西為例:
運的啥東西;
01(搬)、02(拉)、03(拖) 假設這操作方式都是直觀寫在紙上的;
房間號01、02、03
註:01(搬)、02(拉)、03(拖)這些指令以代號的形式寫在紙上放在房間里,搬運的東西也放在房間里 當然可以在同一房間內
『拾』 指令的地址碼和指令中的地址碼含義有何不同
指令的地址是指在內存中存放指令的位置,是cpu執行取指令操作時需要的數據;指令中的地址碼是指指令的操作對象存放在內存中的位置,當指令執行去讀寫被操作數時需要的數據;這兩個概念是完全不一樣的