一.單選題(共19題,51.3分)
1
程序控制類指令(轉移、循環等)的功能是( )。
-
A、
進行主存和CPU之間的數據傳送
-
B、
進行CPU和外設之間的數據傳送
-
C、
改變程序執行的順序
-
D、
控制進、出棧操作
正確答案: C 我的答案:C
2
在指令設計格式中,采用擴展操作碼的目的是( )。
-
A、
增加指令長度
-
B、
增加尋址空間
-
C、
增加操作碼位數
-
D、
增加指令數量
正確答案: D 我的答案:D
3
某指令系統指令字長為8位,每一地址碼長為3位,用擴展操作碼技術,若指令系統具有2條二地址指令,10條零地址指令,則最多有( )條一地址指令。
-
A、
20
-
B、
6
-
C、
10
-
D、
14
正確答案: D 我的答案:D
分析:按照正常計算順序,從二地址推導到一地址,再到0地址是非常簡單的,因為是等式。但是如果告訴左右兩邊,求中間,就需要一點點不等式的思想了。
具體如下:首先看,二地址是不是推導的起點,二地址共占用6位,這樣只留下2位作操作碼,不可能有3地址,因此確定是最多只有二地址。二地址條件下,只有2位操作碼,最多四條二地址指令。如果真的是4條二地址指令,問題就來了,就不存在一地址,零地址了。我們說要留個種子,才有擴展。 根據題干,只有2條二地址指令,意味着留了2個種子做下一級的擴展。拿一個3位的地址段,共有23=823=8個狀態,乘上剛才留的兩個種子,最多可以有2⋅8=162⋅8=16個一地址指令。
同樣的道理,如果一地址指令不留一個或多個狀態做0地址的擴展種子,就不存在0地址了。而現在是已經知道存在0地址指令,所以,要留狀態。那么留幾個呢?根據0地址指令個數反推。如果只留一個,那么0地址指令最多是1⋅23=81⋅23=8個。不夠10個,那么就意味着至少留2個狀態做種子。於是一地址最多是16−2=14個16−2=14個。
4
固定長度操作碼為5位,則最多可表示( )條指令。
-
A、
32
-
B、
10
-
C、
31
-
D、
2
正確答案: A 我的答案:A
5
單地址指令中為了完成兩個數的算術運算,除地址碼指明的一個操作數外,另一個常需采用( )。
-
A、
堆棧尋址方式
-
B、
立即尋址方式
-
C、
隱含尋址方式
-
D、
間接尋址方式
正確答案: C 我的答案:C
6
以下四種類型指令中,執行時間最長的是( )。
-
A、
RR型指令
-
B、
RS型指令
-
C、
SS型指令
-
D、
程序控制指令
正確答案: C 我的答案:C
A項,寄存器型--寄存器-寄存器(RR)
B項,存儲器型--寄存器-基址存儲器(RS)
C項,存 -存儲器型--基址存儲器-基址存儲器(SS)
D項,程序控制類指令包括跳轉指令,循環指令,子程序指令以及中斷指令。這些指令可以控制程序的執行順序。
CPU訪問速度從快到慢:寄存器,高速緩存,內存,硬盤,光盤,軟盤。 因為CPU訪問內存速度相較於訪問寄存器慢,所以選C。
綜上本題選C。
補充:
存儲器-立即數型--基址存儲器-立即數(SI)
寄存器-變址型--寄存器變址存儲器(RX)
7
就取得操作數的速度而言,下列尋址方式中速度最快的是( )。
-
A、
直接尋址
-
B、
立即尋址
-
C、
寄存器間接尋址
-
D、
寄存器尋址
正確答案: B 我的答案:B
8
下列尋址方式中取得操作數速度最慢的是( )。
-
A、
相對尋址
-
B、
基址尋址
-
C、
寄存器尋址
-
D、
存儲器間接尋址
正確答案: D 我的答案:D
9
用某個寄存器值作為操作數的尋址方式是( )尋址。
-
A、
直接
-
B、
間接
-
C、
寄存器
-
D、
寄存器間接
正確答案: C 我的答案:C
10
RISC思想主要基於的是( )。
-
A、
減少指令的平均執行周期數
-
B、
便於編譯器的編寫
-
C、
減少硬件的復雜程序
-
D、
減少指令的復雜程度
正確答案: D 我的答案:D
11
零地址的運算類指令在指令格式中不給出操作數地址,參加的兩個操作數來自( )。
-
A、
累加器和寄存器
-
B、
累加器和暫存器
-
C、
堆棧的棧頂和次棧頂單元
-
D、
暫存器和堆棧的棧頂單元
正確答案: C 我的答案:C
12
一個計算機系統采用32位單字長指令,地址碼為12位,如果定義了250條二地址指令,那么還可以有( )條單地址指令,
-
A、
4K
-
B、
8K
-
C、
16K
-
D、
24K
正確答案: D 我的答案:D
地址碼為12位,則二地址指令的操作碼長度為32-12-12=8位,已定義了250條二地址指令,28-250=6,則可以設計出單地址指令6X212=24K條。
13
采用擴展操作碼的重要原則是( )。
-
A、
操作碼長度可變
-
B、
使用頻率高的指令采用短操作碼
-
C、
使用頻率低的指令采用短操作碼
-
D、
滿足整數邊界原則
正確答案: B 我的答案:A
14
為了縮短指令中某個地址段的位數,有效的方法是采取( )。
-
A、
立即尋址
-
B、
變址尋址
-
C、
間接尋址
-
D、
寄存器尋址
正確答案: D 我的答案:D
15
設指令中的地址碼為A,變址寄存器為X,基址寄存器為B。程序計數器為PC,則變址間接尋址方式的操作數有效地址EA為( )。
-
A、
(X)+(A)
-
B、
(X+B)
-
C、
((X)+A)
-
D、
(PC)+(A)
正確答案: C 我的答案:C
16
某機器字長16位,主存按字節編址,轉移執行采用相對尋址,由2個字節組成,第一字節為操作碼字段,第二字節為相對位移量字段。假設取指令時,每取一個字節PC自動加1.若某轉移指令所在主存地址為2000H,相對位移量字段的內容為06H,則該轉移指令成功轉移后的目標地址為( )。
-
A、
2006H
-
B、
2007H
-
C、
2008H
-
D、
2009H
正確答案: C 我的答案:C
目標地址由兩部分組成:操作碼字段+相對位移量字段。
主存地址也應該由這兩部分構成,所以在取指過程中,應該是取了源地址的操作碼地址(一個字節)+偏移量字段(一個字節)。最后加上PC自加規律,兩個字節加2,這樣才是2008H ;
如果在源地址的時候把源偏移量也取了,感覺沒意義,答案是2008H,這樣理解符合規律。計算機內部的取址規律應該是這樣。
17
假設采用相對尋址方式的轉移指令占兩個字節,第一字節是操。碼,第二字節是相對位移量(用補碼表示)。每次CPU從存儲器取出一個字節,並自動完成(PC)+1->PC。假設執行到該轉移指令時PC的內容為2003H,要求轉移到200AH地址,則該轉移指令第二字節的內容應為( )。
-
A、
05H
-
B、
08H
-
C、
F8H
-
D、
F5H
正確答案: A 我的答案:A
轉移指令是2字節,所以2003H轉移后,變成2003H+2=2005H 因此,2005H轉到200AH,即(200AH – 2005H =5H)需要+5,+5用補碼表示,+5的補碼0000 0101,16進制是05H,所以選擇A項。
18
假設某條指令的一個操作數采用變址尋址方式,變址寄存器的內容為8H,指令中給出的形式地址為1200H,地址為1200H的內存單元中的內容為12FCH,地址為12FCH的內存單元的內容為38B8H,則該操作數的有效地址為( )。
-
A、
1200H
-
B、
1208H
-
C、
12FCH
-
D、
38B8H
正確答案: B 我的答案:B
EA=1200+8
19
采用變址尋址可以擴大尋址范圍,且( )。
-
A、
變址寄存器的內容由用戶確定,在程序執行過程中不能改變
-
B、
變址寄存器的內容由操作系統確定,在程序執行過程中不能改變
-
C、
變址寄存器的內容由用戶確定,在程序執行過程中可以改變
-
D、
變址寄存器的內容由操作系統確定,在程序執行過程中可以改變
正確答案: C 我的答案:C
二.判斷題(共15題,40.5分)
1
在指令系統的可擴充性方面,微程序控制器優於組合邏輯控制。
正確答案:√ 我的答案:√
2
大多數個人計算機中可配置的最大主存容量受指令地址碼位數的限制。
正確答案:× 我的答案:×
內存容量不僅受地址總線位數限制,還受尋址方式、操作系統的存儲管理方式等限制。
3
寄存器間接尋址方式所形成的有效地址為主存地址。
正確答案:√ 我的答案:√
4
計算機指令系統中采用不同尋址方式的目的主要是為了降低指令的譯碼難度。
正確答案:× 我的答案:×
指令系統中采用不同尋址方式的目的是“擴大尋址空間並提高編程靈活性”;
5
在二地址指令中指令地址碼字段存放的一定是操作數的地址。
正確答案:× 我的答案:×
p303,op a1 a2 ,a2還可以存放代表中間結果的存放地址
6
在一條機器指令中可能出現不止一種尋址方式。
正確答案:√ 我的答案:√
7
采用擴展操作碼技術,可增加指令個數。
正確答案:√ 我的答案:√
8
零地址指令中午地址碼,其操作數的地址可能隱含在堆棧指針SP中。
正確答案:√ 我的答案:√
9
指令字長可以是任意二進制位數。
正確答案:× 我的答案:√
存儲字長、指令字長、數據字長三者可各不相同,但它們必須是字節的整數倍。
10
數據不對准邊界存放,有利於讀取,可減少訪存次數。
正確答案:× 我的答案:×
11
指令的跳躍尋址可實現分支和循環結構。
正確答案:√ 我的答案:√
12
運算類的隱含尋址,兩個操作數均隱含在堆棧中。
正確答案:× 我的答案:×
13
一次間接尋址方式獲得操作數只需訪問一次主存。
正確答案:× 我的答案:×
不一定
14
堆棧尋址中,SP是指棧頂內容。
正確答案:× 我的答案:√
SP是堆棧指針,它的數值表示離堆棧段地址還有多遠
15
RISC技術是用最常用的20%簡單指令,組合實現80%的復雜指令。
正確答案:√ 我的答案:√
三.其它(共2題,8.2分)
1
某計算機字長16位,主存容量為64K字,采用單字長單地址指令,共有64條指令,試采用四種尋址方式(立即、直接、基值、相對)設計指令格式,並寫出這四種尋址方式的有效地址計算方法。
正確答案:
64條指令需占用操作碼字段(OP)6位,這樣指令余下長度為10位。為了覆蓋主存64K字的地址空間,設尋址模式(X)2位,形式地址(D)8位,其指令格式如下: 15 10 9 8 7 0 OP X D尋址模式定義如下:X= 0 0 直接尋址 有效地址 E=D(256單元)X= 0 1 間接尋址 有效地址 E= (D)(64K)X= 1 0 變址尋址 有效地址 E= (R)+D (64K)X= 1 1 相對尋址 有效地址 E=(PC)+D (64K)其中R為變址寄存器(16位),PC為程序計數器(16位),在變址和相對尋址時,位移量D可正可負。
我的答案:
解:40條指令需占用操作碼字段(OP)6位,這樣指令余下長度為10位。為了覆蓋主存640K字的地 址空間,設尋址模式(X)2位,形式地址(D)8位,其指令格式如下:
尋址模式定義如下: X= 0 0 直接尋址 有效地址 E=D(直接尋址為256個存儲單元) X= 0 1 立即尋址 D字段為操作數 X= 1 0 變址尋址 有效地址 E= (RX)+D (可尋址64K個存儲單元) X= 1 1 相對尋址 有效地址 E=(PC)+D (可尋址64K個存儲單元) 其中RX為變址寄存器(16位),PC為程序計數器(16位),在變址和相對尋址時,位移量D可 正可負。
批語
2
某機主存容量為4M*16位,且存儲字長等於指令字長,若該機指令可完成108種操作,操作碼位數固定,且具有直接、間接、變址、基址、相對、立即等六種尋址方式,回答下列問題:(1)畫出一地址指令格式並指出各字段的作用
(2)該指令直接尋址的最大范圍
(3)一次間接尋址和多次間接尋址的尋址范圍
(4)立即數的范圍(十進制表示)
(5)相對尋址的范圍(十進制表示)
(6)上述六種尋址方式的指令中哪一種執行時間最短,哪一種最長,為什么?哪一種便於程序浮動,哪一種最適合處理數組問題?
(7)如何修改指令格式,使指令的尋址范圍可擴大到4M?
(8)為使一條轉移指令能轉移到主存的任一位置,可采取什么措施?簡要說明之。
正確答案:
存儲字長為16位,存儲字長等於指令字長,則指令字長也是16位;完成108種操作,則操作碼為7位;有6種尋址方式,則尋址特征為3位(1)一地址指令格式OP 7尋址特征 3形式地址 A 6 (2)一地址指令直接尋址的范圍是26=64字(3)存儲字長為16位,則一次間址為216=64k字,多次間址需要1位來說明是不是還是間址,則尋址空間為215=32k字(4)形式地址A若為立即數,則立即數的范圍是-32--+31(5)相對尋址中形式地址A就是位移量,A為6位,則范圍是-32--+31(6)六種尋址方式中,間接尋址執行時間最長,因為一次間址就要訪問2次存儲器才能取得操作數,所以時間最長。變址尋址便於程序浮動,基址尋址最適合處理數組問題。(7)指令的尋址范圍擴大到4M,需要地址線是22根,用目前的6種尋址方式都達不到。只有擴大指令字長,把指令字長擴大到32位,這樣形式地址正好22位,即可尋址到4M空間的存儲器。(8)轉移地址轉移到主存的任一位置,主存為4M,則轉移地址要達到22位才行。把指令字長擴大到32位,形式地址為22位就行了。
我的答案:
(1)op A1 操作碼字段用來指明該指令所要完成的操作地址碼字段表示可以直接尋址的范圍(2)16-7-3(3)16 15(4)2^6(6為地址碼位數)(5)2^16(寄存器的字長,即機器字長)
