1.指令的基本格式
2.定長操做碼指令格式
3.擴展操做碼指令格式程序員
1.有效地址的概念
2.數據尋址和指令尋址
3.常見尋址方式spa
2009blog
16.某機器字長16位,主存按字節編制,轉移指令採用相對尋址,由兩個字節組成,第一字節爲操做碼字段,第二字節爲相對位移量字段。假定取指令時,每取一個字節PC自動加1。若某轉移指令所在主存地址爲2000H,相對位移量字段的內容爲06H,則該轉移指令成功轉移後的目標地址是
A. 2006H B.2007H
C. 2008H D.2009H內存
答案:C
考點:PC相對尋址方式
相對尋址EA=(PC)+A;
執行轉移指令,第一步要取指令,是取指令後PC2000H的值。轉移指令由兩個字節組成,每取一個字節PC自動加1,所以取指令後PC值爲2002H,故EA=(PC)+A=2002H+06H=2008H,故答案爲C。
編譯
17.下列關於RISC的敘述中,錯誤的是
A. RISC廣泛採用微程序控制器
B. RISC大多數指令在一個時鐘週期內完成
C. RISC的內部通用寄存器數量相對CISC多
D. RISC的指令數、尋址方式和指令格式種類相對CISC少擴展
答案:A
考點:RISC指令集和CISC的區別 程序
RISC精簡指令集特色:
RISC不是簡單地簡化指令系統,而是經過簡化指令使計算機的結構更加簡單合理,從而提升運算速度。
一、僅選使用頻率高的一些簡單指令和頗有用但不復雜指令,指令條數少。
二、指令長度固定,指令格式少,尋址方式少。
三、只有取數/存數指令訪問存儲器,其他指令都在寄存器中進行,即限制內存訪問。
四、CPU中通用寄存器數量至關多;大部分指令都在一個機器週期內完成。
五、以硬佈線邏輯爲主,不用或少用微程序控制。
六、特別重視編譯工做,以簡單有效的方式支持高級語言,減小程序執行時間。
2010im
18.下列寄存器中,反彙編語言程序員可見的是()
A.存儲器地址寄存器(MAR)
B.程序計數器(PC)
C.存儲區數據寄存器(MDR)
D.指令寄存器(IR)
答案:B
考點:所謂可見,就是程序員能夠對其進行主動的修改。
技術
2011數據
16.偏移尋址經過將某個寄存器內容與一個形式地址相加而生成有效地址。下列尋址方式中,不屬於偏移尋址方式的是
A.間接尋址 B.基址尋址
C.相對尋址 D.變址尋址
答案:A
考點:偏移尋址的概念
相對尋址、變址尋址、基址尋址統稱爲偏移尋址。
17.某機器有一個標誌寄存器,其中有進位/借位標誌CF、零標誌ZF、符號標誌SF和溢出標誌OF,條件轉移指令bgt(無符號整數比較大於時轉移)的轉移條件是
A.CF+OF=1 B./ SF+ ZF =1
C. / (CF+ ZF) =1 D./ (CF+ SF) =1
答案:C
考點:指令標誌位的含義
判斷無符號整數A>B成立,知足的條件是結果不等於0,即零標誌ZF=0,而且在這個比較就是兩個數相減若A>B是不會形成借位的,即進位/借位標誌CF=0。因此正確選項爲C。
其他選項中用到了符號標誌SF和溢出標誌OF,顯然能夠排除掉。其實這裏SF=0,OF=0,這樣D也成立,可是不符合要求。
18.下列給出的指令系統特色中,有利於實現指令流水線的是
I. 指令格式規整且長度一致
II.指令和數據按邊界對齊存放
III.只有Load/Store指令才能對操做數進行存儲訪問
A.僅I、II B.僅II、III
C.僅I、III D.I、II、III
答案:D
考點:以上三個RISC特徵都能有效下降取指令或執行指令的複雜度,從而有利於流水線操做
19.假定不採用Cache和指令預取技術,且機器處於「開中斷」狀態,則在下列有關指令執行的敘述中,錯誤的是
A.每一個指令週期中CPU都至少訪問內存一次
B.每一個指令週期必定大於或等於一個CPU時鐘週期
C.空操做指令的指令週期中任何寄存器的內容都不會被改變
D.當前程序在每條指令執行結束時均可能被外部中斷打斷
答案:C
考點:中斷的基本概念 ,寄存器用途,指令週期的概念,就算是進行空操做,只要有取指令的過程PC都要+1,因此任何寄存器的內容不會改變的說法錯誤。
2013
假設變址寄存器 R 的內容爲 1000H,指令中的形式地址爲 2000 H;地址 1000H 中的內容爲 2000H,地址 2000H 中的內容爲 3000H,地址 3000 H 中的內容爲 4000H,則變址尋址方式下訪問到的操做數是( )
A. 1000H B. 2000H C. 3000H D. 4000H
答案:D
2014
17. 某計算機有16個通用寄存器,採用32位定長指令字,操做碼字段(含尋址方式位)爲8位,Store指令的源操做數和目的操做數分別採用寄存器直接尋址和基址尋址方式,若基址寄存器可以使用任一通用寄存器,且偏移量用補碼錶示,則Store指令中偏移量的取值範圍是
A -32768~+32767 B -32767~+32768
C -65536~+65535 D -65535~+65536
題目中指令爲 32 位,操做碼爲 8 位(已經包含尋址方式位)。
源操做數採用寄存器直接尋址,所以能夠用 4 位來標記使用哪個寄存器。
目的操做數使用基址尋址,因爲可使用任何一個通用寄存器,所以須要 4 位來標記,因此偏移量站總數 32 - 8 - 4 - 4 = 16 位,所以答案爲A.
2016
16.某指令格式以下,
其中M爲尋址方式,I爲變址寄存器編號,D爲形式地址,若採用先變址後間址的尋址方式,則操做數的有效地址是()
A I+D B. (I)+D
C. ((I)+D) D. ((I))+D
答案:C
解析:變址+間址的尋址方式
【2010年真題】43題(11分)
某計算機字節長爲16位,主存地址空間大小爲128KB,按字編址。採用字長指令格式,指令名字段定義以下:
轉移指令採用相對尋址,相對偏移用補碼錶示,尋址方式定義以下:
注:(X)表示有存儲地址X或寄存器X的內容,請回答下列問題:(1)該指令系統最多可有多少指令?該計算機最多有多少個通用寄存器?存儲地址寄存器(MAR)和存儲數據寄存器(MDR)至少各需多少位?
答:該指令系統最多可有16條指令(OP4位,24=16),該計算機最多有8個通用寄存器(Ms和Md都是3位),存儲地址寄存器(MAR)和存儲數據寄存器(MDR)至少都需16位。由於地址空間大小爲 128KB,按字編址,故共有 64K 個存儲單元,地址位數爲 16 位,因此MAR 至少爲 16 位; 由於字長爲 16 位, 因此 MDR 至少爲 16 位。
這裏對按字編址作出解釋,在32位機中,一個字等於4個字節;在64位機中,一個字表示8個字節,那麼字就是機器字長!對本題中的16位機來講,一個字等於2個字節,那麼也就是將128KB=128k*8b=64*16b,故而須要64K個存儲單元。
(2)轉移指令的目標地址範圍是多少?
答:轉移指令的目標地址範圍爲0000H~FFFFH。(主存地址空間爲128KB,0~217-1)
(3)若操做碼0010B表示加法操做(助記符爲add),寄存器R4和R5的編號分別爲100B和101B,R4的內容爲1234H,R5的內容爲5678H,地址1234H中的內容爲5678H,地址5678H中的內容爲1234H,則彙編語句「add (R4), (R5)+」(逗號前爲源操做數,逗號後爲目的操做數)對應的機器碼是什麼(用十六進制表示)?該指令執行後,哪些寄存器和存儲單元的內容會改變?改變後的內容是什麼?
答:語句「add (R4), (R5)+」對應的機器碼:0010(操做碼)001(寄存器間接) 100(源操做數) 010(寄存器間接、自增) 101(目的操做數)B,十六進制表示爲2315H。
該指令的功能是:把內存1234H單元中的數據與內存5678H單元中的數據進行相加,結果寫回到5678H單元,並且R5的內容用做內存地址以後,還要執行R5的內容加1的操做,因此「add (R4), (R5)+」指令執行後,R5和存儲單元5678H的內容會改變。執行後,R5的內容從5678H變爲5679H。內存5678H單元的內容將變爲該加法指令計算獲得的和:5678H+1234H=68ACH。