一、單項選擇題
01. 下列部件不屬于控制器的是( C )。
題目原文
- 下列部件不屬于控制器的是( )。
A. 指令寄存器
B. 程序計數器
C. 程序狀態字寄存器
D. 時序電路
正確答案:C
題目解析
- 考點分析: 本題考察CPU中控制器(Control Unit, CU)的基本組成。CPU由控制器和運算器(ALU)組成,需要明確各部件的歸屬。
- 正確選項分析 (C. 程序狀態字寄存器): 程序狀態字寄存器(Program Status Word, PSW),也稱標志寄存器,主要用于存放算術邏輯運算結果的狀態信息(如零標志ZF、進位標志CF)和控制CPU工作方式的控制標志。因為其內容(特別是狀態標志)是運算器執行運算后直接產生的,所以在經典的馮·諾依曼結構劃分中,PSW被歸類為運算器的組成部分,而非控制器。
- 錯誤選項分析:
- A. 指令寄存器 (IR): 控制器的核心部件,用于存放當前從主存中取出的、正在執行的指令。指令的譯碼就是對IR中的內容進行的。
- B. 程序計數器 (PC): 控制器的核心部件,用于存放下一條將要執行指令的地址,控制著程序的執行流程。
- D. 時序電路: 控制器的核心部件,也叫時序控制單元,它產生CPU工作所需的各種時序信號,指揮計算機各部件按規定的時間順序協調工作。
02. 通用寄存器是( D )。
題目原文
02. 通用寄存器是( )。
A. 可存放指令的寄存器
B. 可存放程序狀態字的寄存器
C. 本身具有計數邏輯與移位邏輯的寄存器
D. 可編程指定多種功能的寄存器
正確答案:D
題目解析
- 考點分析: 本題考察通用寄存器(General-Purpose Register, GPR)的定義和功能。
- 正確選項分析 (D. 可編程指定多種功能的寄存器): “通用”的核心含義在于其用途不是固定的,而是靈活的。程序員(或編譯器)可以通過指令來決定通用寄存器的用途,例如用作存放操作數、運算的中間結果,或者存放地址(作為基址、變址、指針等)。這種由程序指令來指定其功能的特性,就是其“通用性”的體現。
- 錯誤選項分析:
- A. 可存放指令的寄存器: 這是指令寄存器(IR) 的專屬功能。
- B. 可存放程序狀態字的寄存器: 這是程序狀態字寄存器(PSW) 的專屬功能。
- C. 本身具有計數邏輯與移位邏輯的寄存器: 寄存器是存儲部件。計數、移位等運算功能是由運算器(ALU) 實現的。ALU可以對通用寄存器中的數據進行操作,但通用寄存器本身不內嵌這些復雜邏輯。
03. CPU中保存當前正在執行指令的寄存器是( A )。
題目原文
03. CPU中保存當前正在執行指令的寄存器是( )。
A. 指令寄存器
B. 指令譯碼器
C. 數據寄存器
D. 地址寄存器
正確答案:A
題目解析
- 考點分析: 本題考察指令執行流程中各寄存器的作用,特別是指令寄存器(IR)的功能。
- 正確選項分析 (A. 指令寄存器): CPU執行指令的第一步是“取指”,即根據PC的地址從內存中取出指令。這條被取出的、即將被譯碼和執行的指令,就被存放在指令寄存器(IR) 中。因此,IR是保存“當前正在執行指令”的寄存器。
- 錯誤選項分析:
- B. 指令譯碼器 (ID): 它是一個組合邏輯電路,不是寄存器。其功能是分析IR中的指令,而不是保存指令。
- C. 數據寄存器: 泛指存放操作數或運算結果的寄存器(如通用寄存器、MDR),不存放指令。
- D. 地址寄存器: 泛指存放地址的寄存器(如PC、MAR),不存放指令。
04. 在CPU中,跟蹤后繼指令地址的寄存器是( B )。
題目原文
04. 在CPU中,跟蹤后繼指令地址的寄存器是( )。
A. 指令寄存器
B. 程序計數器
C. 地址寄存器
D. 狀態寄存器
正確答案:B
題目解析
- 考點分析: 本題考察程序計數器(PC)的核心功能。
- 正確選項分析 (B. 程序計數器): 程序計數器(PC)的唯一功能就是存放下一條將要執行的指令的內存地址。每當CPU取走一條指令后,PC的內容就會自動更新(增加一個指令長度或跳轉到新地址),指向下一條指令。因此,它起到了“跟蹤”程序執行流程、指示“后繼指令”的作用。
- 錯誤選項分析:
- A. 指令寄存器 (IR): 存放當前正在執行的指令。
- C. 地址寄存器 (AR): 泛稱。特指MAR時,它存放當前要訪問的內存地址,不具備自動跟蹤后繼指令的功能。
- D. 狀態寄存器 (PSW): 存放運算狀態,與指令地址無關。
05. 條件轉移指令執行時所依據的條件來自( B )。
題目原文
05. 條件轉移指令執行時所依據的條件來自( )。
A. 指令寄存器
B. 狀態寄存器
C. 程序計數器
D. 地址寄存器
正確答案:B
題目解析
- 考點分析: 本題考察條件轉移指令的判斷依據。
- 正確選項分析 (B. 狀態寄存器): 條件轉移指令(如“結果為零則跳轉”)的執行依賴于上一次算術或邏輯運算的結果。這些結果的特征(如是否為零、有無進位等)被保存在狀態寄存器(PSW) 的各個標志位中。CPU執行條件轉移指令時,會檢測PSW中的特定標志位來決定是否進行跳轉(即修改PC的值)。
- 錯誤選項分析:
- A. 指令寄存器 (IR): IR中存放了條件轉移指令本身,它指明了“要判斷什么條件”,但判斷的“依據”(即那個條件是真是假)來自PSW。
- C. 程序計數器 (PC): PC是條件轉移指令作用的對象(如果條件滿足,PC的值會被修改),而不是條件的來源。
- D. 地址寄存器 (MAR): 用于內存尋址,與邏輯判斷無關。
06. 在所謂的 n 位 CPU 中,n 是指( B )。
題目原文
06. 在所謂的 n 位 CPU 中,n 是指( )。
A. 地址總線線數
B. 數據總線線數
C. 控制總線線數
D. I/O 線數
正確答案:B
題目解析
- 考點分析: 本題考察CPU“位數”(字長)的定義。
- 正確選項分析 (B. 數據總線線數): CPU的“位數”通常指其字長(Word Size),主要由以下幾個相互關聯的指標定義:1)ALU一次能處理的二進制數據位數;2)CPU內部通用寄存器的位數。而CPU與外界(如內存)一次交換數據的能力,由數據總線的寬度決定。這三者在設計上通常是一致的。因此,n位CPU的n最直接地對應其數據總線的線數。
- 錯誤選項分析:
- A. 地址總線線數: 決定CPU的最大尋址空間(2^地址線數),與CPU處理數據的能力(位數)是兩個不同的概念。
- C. 控制總線線數: 與CPU位數沒有直接的固定關系。
- D. I/O 線數: 不作為衡量CPU位數的標準。
07. 在CPU的寄存器中,( C )對用戶是透明的。
題目原文
07. 在CPU的寄存器中,( )對用戶是透明的。
A. 程序計數器
B. 狀態寄存器
C. 指令寄存器
D. 通用寄存器
正確答案:C
題目解析
- 考點分析: 本題考察CPU寄存器的“用戶可見性”。“對用戶透明”意味著程序員不能通過指令來直接讀寫該寄存器,其操作由硬件自動完成。
- 正確選項分析 (C. 指令寄存器): 指令寄存器(IR)用于存放從內存取來的指令。這個過程(取指到IR、譯碼IR)完全由CPU硬件自動控制,程序員編寫的任何指令都不能訪問IR。因此,IR對用戶是透明的。類似的透明寄存器還有MAR、MDR。
- 錯誤選項分析:
- A. 程序計數器 (PC): 用戶可以通過轉移、調用指令來修改PC,控制程序流程,因此PC對用戶可見。
- B. 狀態寄存器 (PSW): 用戶可以通過條件轉移指令讀取其狀態,也可以用特定指令修改某些標志位,因此PSW對用戶可見。
- D. 通用寄存器: 這是程序員最直接操作的寄存器,用于存放數據和地址,完全對用戶可見。
08. 指令( )從主存中讀出。
題目原文
08. 指令( )從主存中讀出。
A. 總是根據程序計數器讀出
B. 總是在程序計數器中
C. 有時根據程序計數器,有時根據轉移指令
D. 有時根據程序計數器,有時根據地址寄存器
正確答案:A
題目解析
- 考點分析: 本題考察CPU取指令的工作原理。
- 正確選項分析 (A. 總是根據程序計數器讀出): CPU獲取指令的唯一途徑,就是在“取指周期”內,將程序計數器(PC) 的內容送到地址總線,然后從該地址處的主存單元中讀取指令。無論程序是順序執行還是發生跳轉,PC中始終存放著下一條待取指令的正確地址。因此,取指令這個動作本身,總是以PC的內容為依據的。
- 錯誤選項分析:
- B. 總是在程序計數器中: PC中存放的是指令的地址,而不是指令本身。
- C. 有時根據程序計數器,有時根據轉移指令: 這是一個迷惑項。轉移指令的作用是修改PC的值,修改之后,CPU下一次取指令仍然是根據PC中的新值去取。取指令的動作源頭始終是PC。
- D. 有時根據程序計數器,有時根據地址寄存器: “地址寄存器”太寬泛。如果是指MAR,那么MAR的值是來自PC的。如果是指其他地址寄存器,它們通常用于取操作數,而不是取指令。
09. 程序計數器(PC)屬于( B )。
題目原文
09. 程序計數器(PC)屬于( )。
A. 運算器
B. 控制器
C. 存儲器
D. ALU
正確答案:B
題目解析
- 考點分析: 本題再次考察CPU內部件的歸屬。
- 正確選項分析 (B. 控制器): 程序計數器(PC)的核心功能是控制指令的執行順序,它與指令寄存器(IR)、時序電路等一起構成了控制器。控制器的職責就是“取指令、分析指令、執行指令”,而PC正是“取指令”這一環節的起點。
- 錯誤選項分析:
- A. 運算器 & D. ALU: 運算器(ALU)負責執行算術和邏輯運算,處理的是數據。PC處理的是指令地址。
- C. 存儲器: 存儲器是CPU外部的獨立部件,用于存放程序和數據。PC是CPU內部的一個寄存器。
10. 下面有關數據通路(PC)的敘述中,錯誤的是( C )。
題目原文
10. 下面有關程序計數器(PC)的敘述中,錯誤的是( )。
A. PC中總是存放指令的地址
B. PC的值由CPU在執行指令過程中進行修改
C. PC的位數一般和存儲器地址寄存器(MAR)的位數一樣
D. 執行轉移指令時,PC的值是轉移指令的目標地址
正確答案:C
題目解析
- 考點分析: 本題綜合考察對PC功能、修改方式和位寬的理解,要求找出錯誤的描述。
- 錯誤選項分析 (C. PC的位數一般和存儲器地址寄存器(MAR)的位數一樣): 這個說法不一定正確,因此是“錯誤的敘述”。
- MAR的位數決定了CPU的最大尋址空間(例如32位MAR對應4GB尋址空間)。
- PC的位數雖然也與尋址空間相關,但它可能小于MAR的位數。一個典型的例子是“按字對齊”(如第24、26題),如果指令按4字節對齊,指令地址的低2位總是00,PC就可以省略這2位,其位數會比MAR少2位。因此,“一般一樣”這個說法不夠嚴謹,是錯誤的。
- 正確選項分析:
- A. PC中總是存放指令的地址: 這是PC的定義,存放下一條待執行指令的地址。正確。
- B. PC的值由CPU在執行指令過程中進行修改: 順序執行時PC自動增加指令長度;執行轉移指令時PC被修改為目標地址。正確。
- D. 執行轉移指令時,PC的值是轉移指令的目標地址: 這是轉移指令的功能。更準確地說是,執行完轉移指令后,PC的值會變成目標地址。在執行過程中,PC會被更新。這個描述基本正確。
11. 程序計數器(PC)可以用于字節地址或字地址,其位數取決于( B )。
I. 存儲器的容量 II. 機器字長 III. 指令字長
題目原文
11. 程序計數器(PC)可以用于字節地址或字地址,其位數取決于( )。
I. 存儲器的容量 II. 機器字長 III. 指令字長
A. I和II
B. I和III
C. I和III
D. I, II和III
正確答案:B (題目選項A和C重復,假定B為I和II,C為I和III)
按您給的答案,正確答案是B。我們將分析為什么是I和III。
- 考點分析: 本題考察影響PC寬度的因素。
- 正確選項分析 (B. I和III):
- I. 存儲器的容量: 這是決定PC寬度的最根本因素。PC必須有足夠的位數來指向存儲器中的任何一個位置。例如,4GB的存儲容量(2^32字節)至少需要32位的地址,因此PC的寬度基礎就是32位。
- III. 指令字長: 指令字長影響PC的尋址單位和增量。如果指令字長是定長的(如32位),且按字節編址,PC的增量就是4。如果指令字長是可變的,PC的增量也會變化。更重要的是,如果計算機系統設計為按指令尋址(而不是按字節尋址),那么PC的寬度就取決于存儲器能容納多少條指令,即
存儲器容量 / 指令字長
。在這種情況下,指令字長直接影響PC的位數。因此,I和III是決定PC位數的關鍵因素。
- 錯誤選項分析:
- II. 機器字長: 機器字長(CPU一次處理數據的位數)與PC位數沒有必然的直接關系。例如,一個16位的CPU(機器字長16)可以有20位的地址總線和PC(如8086)。雖然在很多現代CPU中,字長和地址寬度恰好相同(如32位CPU配32位地址),但這并非一個決定性的依賴關系。PC的寬度服務于尋址,而機器字長服務于數據處理。
12. 下列關于程序計數器PC的敘述中,錯誤的是( B )。
題目原文
12. 下列關于程序計數器PC的敘述中,錯誤的是( )。
A. 機器指令中不能顯式地使用PC
B. 指令順序執行時,PC值是自動加1
C. 調用指令執行后,PC值一定是被調用過程的入口地址
D. 無條件轉移指令執行后,PC值一定是被轉移目標地址
正確答案:B
題目解析
- 考點分析: 本題考察PC在指令執行過程中的變化規律。
- 錯誤選項分析 (B. 指令順序執行時,PC值是自動加1): 這個說法是錯誤的。PC的自增量等于一條指令的長度。
- 如果計算機是按字節編址,而指令長度是4個字節(32位),那么PC每次應該自動加4。
- 只有在指令長度恰好為1個尋址單位(例如,1字節長的指令且按字節編址)時,PC值才加1。
- 因此,“自動加1”的說法過于絕對,在大多數現代計算機中都是不成立的。
- 正確選項分析:
- A. 機器指令中不能顯式地使用PC: 在大多數指令集中,程序員不能像使用通用寄存器那樣直接對PC進行算術運算(如
ADD PC, #10
)。對PC的修改是通過專門的控制流指令(JMP, CALL, RET)隱式完成的。此說法正確。 - C & D: 調用指令和無條件轉移指令的定義就是修改PC的值,使其指向新的目標地址(子程序入口或跳轉目標)。這兩個說法都正確。
- A. 機器指令中不能顯式地使用PC: 在大多數指令集中,程序員不能像使用通用寄存器那樣直接對PC進行算術運算(如
13. 指令寄存器(IR)的位數取決于( C )。
題目原文
13. 指令寄存器(IR)的位數取決于( )。
A. 存儲器的容量
B. 機器字長
C. 指令字長
D. 存儲字長
正確答案:C
題目解析
- 考點分析: 本題考察指令寄存器(IR)寬度的決定因素。
- 正確選項分析 (C. 指令字長): 指令寄存器(IR)的功能是存放從內存中取出的一條完整指令。為了能夠容納這條指令,IR的位數必須等于指令字長。如果指令是變長的,IR的寬度必須等于最長指令的長度。
- 錯誤選項分析:
- A. 存儲器的容量: 決定了地址線的數量和PC的寬度,與IR無關。
- B. 機器字長: 是CPU一次處理數據的位數,與指令長度可以不同。
- D. 存儲字長: 是指存放在一個存儲單元中的二進制代碼位數,它可能等于也可能不等于指令字長(一條指令可能占用一個或多個存儲字)。但IR必須能裝下整條指令,所以其位數由指令字長決定。
14. CPU中通用寄存器的位數取決于( C )。
題目原文
14. CPU中通用寄存器的位數取決于( )。
A. 存儲器的容量
B. 指令的長度
C. 機器字長
D. 都不對
正確答案:C
題目解析
- 考點分析: 本題考察通用寄存器(GPR)位數的決定因素。
- 正確選項分析 (C. 機器字長): 通用寄存器的位數是機器字長最直接的體現。所謂“32位CPU”或“64位CPU”,指的就是其機器字長是32位或64位,這也意味著其內部的通用寄存器、ALU等核心數據通路都是按這個寬度設計的。
- 錯誤選項分析:
- A. 存儲器的容量: 決定地址寬度。
- B. 指令的長度: 決定IR的寬度。
- D. 都不對: 因為C是正確的。
15. CPU中的通用寄存器,( B )。
題目原文
15. CPU中的通用寄存器,( )。
A. 只能存放數據,不能存放地址
B. 可以存放數據和地址
C. 既不能存放數據,又不能存放地址
D. 可以存放數據和地址,還可以替代指令寄存器
正確答案:B
題目解析
- 考點分析: 本題考察通用寄存器的功能。
- 正確選項分析 (B. 可以存放數據和地址): 這是通用寄存器“通用性”的核心。它們既可以作為ALU的操作數來源和目標(存放數據),也可以被用來進行地址計算(如存放基地址、變址),或者直接作為指針存放內存地址。
- 錯誤選項分析:
- A. 只能存放數據,不能存放地址: 錯誤,存放地址是其重要功能之一。
- C. 既不能存放數據,又不能存放地址: 完全錯誤。
- D. 可以存放數據和地址,還可以替代指令寄存器: 錯誤,指令寄存器(IR)是專用寄存器,其功能不可被通用寄存器替代。
16. 在計算機系統中表示程序和機器運行狀態的部件是( D )。
題目原文
16. 在計算機系統中表示程序和機器運行狀態的部件是( )。
A. 程序計數器
B. 累加寄存器
C. 中斷寄存器
D. 程序狀態字寄存器
正確答案:D
題目解析
- 考點分析: 本題考察程序狀態字寄存器(PSW)的功能定義。
- 正確選項分析 (D. 程序狀態字寄存器): 程序狀態字寄存器(PSW)就是專門為此設計的。它包含:
- 機器運行狀態:如算術運算后的進位(CF)、溢出(OF)、零(ZF)、符號(SF)等狀態標志。
- 程序運行狀態:如中斷是否允許(IF)、CPU工作模式(如用戶態/核心態)、單步調試標志(TF)等控制標志。
- 錯誤選項分析:
- A. 程序計數器 (PC): 表示程序的執行順序。
- B. 累加寄存器 (ACC): 存放操作數或運算結果。
- C. 中斷寄存器: 通常用來記錄中斷源信息,是狀態的一部分,但PSW更全面。
17. 狀態寄存器用來存放( D )。
題目原文
17. 狀態寄存器用來存放( )。
A. 算術運算結果
B. 邏輯運算結果
C. 運算類型
D. 算術、邏輯運算及測試指令的結果狀態
正確答案:D
題目解析
- 考點分析: 本題具體考察狀態寄存器中“狀態標志”的來源。
- 正確選項分析 (D. 算術、邏輯運算及測試指令的結果狀態): 這個選項最全面。狀態寄存器中的標志位(如ZF, SF, CF, OF, PF等)不僅反映了算術運算(如ADD, SUB)和邏輯運算(如AND, OR, XOR)的結果特征,也反映了專門的測試指令(如TEST, CMP)的結果狀態。CMP指令本質上是做減法但不保存結果,只更新標志位。
- 錯誤選項分析:
- A & B: 只提到了算術或邏輯運算,不全面。它們存放的是運算結果的狀態,而不是結果本身。
- C. 運算類型: 運算類型由指令的操作碼決定,存放在IR中,與狀態寄存器無關。
18. 下列關于標志寄存器(EFLAGS 寄存器或 PSW 等)的敘述中,錯誤的是( C )。
題目原文
18. 下列關于標志寄存器(EFLAGS 寄存器或 PSW 等)的敘述中,錯誤的是( )。
A. 不需要普通用戶用指令進行編碼
B. 條件轉移指令根據其中的一些標志位來確定 PC 的值
C. 可以通過指令直接訪問標志寄存器并修改它的值
D. 可以用它來保存全部或局部的各種標志信息
正確答案:C
題目解析
- 考點分析: 本題深入考察標志寄存器的訪問方式。
- 錯誤選項分析 (C. 可以通過指令直接訪問標志寄存器并修改它的值): 這個說法被認為是“錯誤”的,因為對標志寄存器的訪問是受限的、非通用的。程序員不能像操作通用寄存器(如
MOV AX, BX
)那樣,用通用的數據傳送或算術指令來“直接”讀寫標志寄存器。雖然存在一些特殊指令(如x86的PUSHF/POPF
,SAHF/LAHF
)可以整體或部分地讀寫標志寄存器,但這種訪問不是“直接和任意”的,因此從通用性的角度看,該描述不準確,被判為錯誤。 - 正確選項分析:
- A: 標志位通常由算術邏輯指令自動設置,程序員不需要手動編碼來設置它們。正確。
- B: 這是標志寄存器的核心用途,為條件判斷和跳轉提供依據。正確。
- D: 這是標志寄存器的定義,保存各種狀態和控制標志。正確。
19. 控制器的功能是( C )。
題目原文
19. 控制器的功能是( )。
A. 產生時序信號
B. 從主存中取出指令并完成指令操作碼譯碼
C. 從主存中取出指令、分析指令并產生有關的控制信號
D. 都不對
正確答案:C
題目解析
- 考點分析: 本題考察對控制器功能的完整理解。
- 正確選項分析 (C. 從主存中取出指令、分析指令并產生有關的控制信號): 這是對控制器功能最完整和準確的描述,涵蓋了指令周期的核心三部曲:
- 取指令 (Fetch): 控制CPU從主存取指令。
- 分析指令 (Decode): 譯碼指令,確定要干什么。
- 執行指令: 產生一系列控制信號,指揮其他部件完成操作。
- 錯誤選項分析:
- A. 產生時序信號: 這是控制器功能的一部分(手段),但不是全部(目的)。
- B. 從主存中取出指令并完成指令操作碼譯碼: 只描述了前兩個階段,遺漏了最重要的“產生控制信號以執行指令”的環節。
20. 指令譯碼器是對( B )進行譯碼。
題目原文
20. 指令譯碼器是對( )進行譯碼。
A. 整條指令
B. 指令的操作碼字段
C. 指令的地址碼字段
D. 指令的地址
正確答案:B
題目解析
- 考點分析: 本題考察指令譯碼器(ID)的具體工作對象。
- 正確選項分析 (B. 指令的操作碼字段): 機器指令包含操作碼(Opcode)和操作數/地址碼。操作碼字段指明了“該指令執行什么操作”(如加、減、存、取)。指令譯碼器的作用就是對這個操作碼字段進行解碼,以確定指令的性質和功能,進而產生相應的控制信號。
- 錯誤選項分析:
- A. 整條指令: 譯碼器主要關注操作碼,地址碼部分由其他邏輯處理。
- C. 指令的地址碼字段: 地址碼字段提供操作數或其地址,它被送往地址計算單元或MAR,而不是被“譯碼”。
- D. 指令的地址: 指指令在內存中的位置,存放在PC里,與譯碼無關。
21. CPU中不包括( C )。
題目原文
21. CPU中不包括( )。
A. 存儲器地址寄存器
B. 指令寄存器
C. 地址譯碼器
D. 程序計數器
正確答案:C
題目解析
- 考點分析: 本題考察CPU與存儲器的部件劃分。
- 正確選項分析 (C. 地址譯碼器): 地址譯碼器是主存儲器的組成部分。它的功能是接收CPU通過地址總線發來的地址,并根據該地址選中唯一的存儲芯片或存儲單元。它物理上位于內存條或主板的內存控制器中,不屬于CPU。
- 錯誤選項分析:
- A, B, D (MAR, IR, PC) 都是CPU內部的核心寄存器,分別用于暫存訪存地址、當前指令和下條指令地址。它們都屬于CPU。
22. 以下關于計算機系統的概念中,正確的是( A )。
I. CPU不包括地址譯碼器
II. CPU的程序計數器中存放的是操作數地址
III. CPU中決定指令執行順序的是程序計數器
IV. CPU的狀態寄存器對用戶是完全透明的
題目原文
22. 以下關于計算機系統的概念中,正確的是( )。
I. CPU不包括地址譯碼器
II. CPU的程序計數器中存放的是操作數地址
III. CPU中決定指令執行順序的是程序計數器
IV. CPU的狀態寄存器對用戶是完全透明的
A. I、III
B. III、IV
C. II、III、IV
D. I、III、IV
正確答案:A
題目解析
- 考點分析: 本題是對前面多個知識點的綜合考察。
- 逐條分析:
- I. CPU不包括地址譯碼器: 正確。如21題所述,地址譯碼器屬于存儲器。
- II. CPU的程序計數器中存放的是操作數地址: 錯誤。PC存放的是下一條指令的地址。
- III. CPU中決定指令執行順序的是程序計數器: 正確。PC始終指向下一條指令,是程序流程的控制核心。
- IV. CPU的狀態寄存器對用戶是完全透明的: 錯誤。用戶可通過條件轉移指令讀取其狀態,因此對用戶是可見的。
- 組合判斷: 只有 I 和 III 是正確的。
23. 間址周期結束后,CPU內寄存器MDR中的內容為( B )。
題目原文
23. 間址周期結束后,CPU內寄存器MDR中的內容為( )。
A. 指令
B. 操作數地址
C. 操作數
D. 無法確定
正確答案:B
題目解析
- 考點分析: 本題考察指令周期中“間址周期”的功能。
- 正確選項分析 (B. 操作數地址):
- 間址周期存在的目的,就是為了處理“間接尋址”方式。
- 在間接尋址中,指令的地址碼字段給出的不是操作數的地址,而是存放操作數地址的內存單元的地址(即地址的指針)。
- 間址周期的任務就是:根據指令給出的這個指針地址訪問內存,把真正的操作數有效地址取出來。
- 這個從內存取出的“有效地址”會通過MDR(內存數據寄存器) 傳遞給CPU。因此,在間址周期結束時,MDR中存放的內容就是操作數的地址。
- 錯誤選項分析:
- A. 指令: 在取指周期結束時,MDR中是指令。
- C. 操作數: 在執行周期中,CPU會用剛取到的有效地址再次訪存,這時MDR中才會是操作數。
- D. 無法確定: 在標準的指令周期模型中,每個周期的產物是明確的,間址周期的產物就是有效地址。
24. 一臺32位計算機的主存儲器容量為4GB,按字節編址,字長和指令字長都是32位。若指令按字邊界對齊存放,則程序計數器(PC)的寬度至少是( B )。
題目原文
24. 一臺32位計算機的主存儲器容量為4GB,按字節編址,字長和指令字長都是32位。若指令按字邊界對齊存放,則程序計數器(PC)的寬度至少是( )。
A. 32位
B. 30位
C. 8位
D. 34位
正確答案:B
題目解析
- 考點分析: 本題考察存儲器尋址與PC寬度的計算,特別是“對齊”的影響。
- 計算步驟:
- 總尋址空間: 4GB = 2^2 * 2^30 B = 2^32 B。按字節編址,需要32位地址。
- 對齊條件: 指令字長32位 = 4字節。“按字邊界對齊”意味著每條指令的起始地址必須是4的倍數。
- 地址特征: 4的倍數的地址,其二進制表示的最低兩位永遠是
00
。 - PC寬度優化: 既然所有指令地址的低2位都是固定的
00
,PC寄存器就無需存儲這兩位。PC可以只存儲地址的高30位(字地址)。當CPU需要用PC訪存時,硬件會自動在這30位地址后面補上00
,形成完整的32位字節地址。 - 結論: PC的寬度至少需要 32 - 2 = 30位。
25. 【2010統考真題】下列寄存器中,匯編語言程序員可見的是( B )。
題目原文
25. 【2010統考真題】下列寄存器中,匯編語言程序員可見的是( )。
A. 存儲器地址寄存器 (MAR)
B. 程序計數器 (PC)
C. 存儲器數據寄存器 (MDR)
D. 指令寄存器 (IR)
正確答案:B
題目解析
- 考點分析: 本題再次考察寄存器的用戶可見性。
- 正確選項分析 (B. 程序計數器, PC): 匯編程序員可以通過JMP(跳轉)、CALL(調用)、RET(返回)等指令來間接或直接地修改PC的值,以控制程序的執行流程。因為其值可以被程序員通過指令來控制,所以PC是用戶可見的。
- 錯誤選項分析:
- A, C, D (MAR, MDR, IR): 均為CPU內部實現指令取指和數據交換的硬件部件,其操作由控制邏輯自動完成,程序員無法通過指令訪問,對用戶是透明的。
26. 【2016統考真題】某計算機主存空間為4GB,字長為32位,按字節編址,采用32位字長指令字格式。若指令按字邊界對齊存放,則程序計數器(PC)和指令寄存器(IR)的位數至少分別是( B )。
題目原文
26. 【2016統考真題】某計算機主存空間為4GB,字長為32位,按字節編址,采用32位字長指令字格式。若指令按字邊界對齊存放,則程序計數器(PC)和指令寄存器(IR)的位數至少分別是( )。
A. 30, 30
B. 30, 32
C. 32, 30
D. 32, 32
正確答案:B
題目解析
- 考點分析: 本題結合了PC寬度和IR寬度的計算。
- PC寬度分析(同24題):
- 4GB (2^32 B) 尋址空間,按字節編址,基礎地址寬度32位。
- 按字(4字節)對齊,地址低2位恒為00,可省略。
- 所以 PC 的位數至少是 30位。
- IR寬度分析:
- 指令寄存器(IR)的功能是保存完整的一條指令。
- 題目說明“采用32位字長指令字格式”,即每條指令長度為32位。
- 因此,IR必須有足夠的寬度來容納這32位指令。
- 所以 IR 的位數至少是 32位。
- 組合結果: PC為30位,IR為32位。正確答案是 (30, 32)。