




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
計算機組成朦理
第七章播令案疣
7.1指令概述
?用計算機解題時,一般都要編制程序,程序既可用高級語
言編寫,亦可用機器語言編寫;
?但計算機只能夠識別和執行用機器語言編寫的程序;
?各種高級語言編寫的應用程序,最終都要翻譯成機器語言
來執行。
?機器語言是由一系列的指令(語句)組成的;
?指令的格式就是機器語言的語法;
?每條指令規定機器完成一定的功能。
?一臺計算機的所有的指令集合稱為該機的指令系統或指令
集。它是程序工作者編制程序的基本依據,也是進行計算機
邏輯設計的基本依據。
7.2指令系統的發展與性能要求
7.2.1指令系統的發展
計算機的程序是由一系列機器指令組成的。
本章所討論的指令,是機器指令。
1.指令系統
指令系統是表征一臺計算機性能的重要
因素,它的格式與功能不僅直接影響到機器
的硬件結構)而且也直接影響到系統軟件,
影響到機器的適用范圍。
2.指令系統的發展
(1)系列計算機同祖'“■件"‘貪用’一-
系列計算機是指基本指令系統相同、基本體系結構相同的一
個系列的各種型號的計算機。其必要條件是同一系列的各機
種有共同的指令集.而且新推出機種的指令系統一定應包含
所有舊機種的全部指令,即實現“向上兼容I這樣,舊機種
上運行的各種軟件可以不加任何修改便可在新機種上運行,
大大減少了軟件開發費用。系列機解決了各機種的軟件兼容
問題。
(2)指令系統結構
從計算機指令系統的角度看當前的計算機指令系統結構
分為兩大類:
?復雜指令集計算機(CISC)_____I;'泣巾I
?精簡指令集計算機(RISC)
70年代末^^
大多數計算機的指令系統多達幾百
條。我們稱這些計算機為復雜指令系統
計算機(CISC)。
但是如此龐大的指令系統難以保證
正確性,不易調試維護,造成硬件資源
浪費。為此人們又提出了易于采用
VLSI技術實現的精簡指令系統計算機
(RISC)o
7.3指令格式
指令由操作碼和地址碼兩部分組成,它的基本格式如下:|
操作碼地址碼
1.操作碼
?操作碼是說明指令操作性質的二進制數代碼。
?操作碼所占的二進制位數決定了一臺計算機所能允許的指令
條數。
例如,操作碼占用六位二進制碼時,這臺計算機最多允許有:
26=64條指令
操作碼字段分兩種:
(1)固定長度操作碼
固定長度操作碼是指操作碼所占的二進制位數固定不變,而
且集中放在指令字的一個字段中。
這種格式有利于簡化硬件設計,減少指令譯碼時間,廣泛
用于字長較長的大、中型計算機和超級小型計算機中。
例如IBM370和VAX-H系列機中,操作碼的長度都是8位,
可表示256條指令。
⑵可變長度操作碼
可變長度操作碼是操作碼擴展技術的應用,即操作碼的
長度是可變的,且分散地放在指令的不同字段中。這種格式有
利于壓縮程序中操作碼的平均長度,在字長較短的微型機中被
廣泛應用。如:PDP-11,INTEL8086/80386等,其操作碼的
長度均是可變的。
o2?Z>MLTil
Y單地址指令又稱為單操作數指令。通常這種指令通常
-以運算器中累加寄存器AC中的數據為被操作數,指令字的
地址碼字段所指明的數為操作數,操作結果又放回累加寄
.“二地址指令常稱為雙操作數指令,它的兩個地址碼
j字段分別指明參與操作的兩個數在內存中或運算
器中通用寄存器的地址,A1作存放操作結果的地址。
〈士(A1)OP(A2)-A1
Ldk,J
//M|A2IA3|三地址指令
零地址指令的指令字中只有操作碼,而沒有地.
、址碼。
半地址)百步
零地址指令
③二地址指令。二地址指令常稱雙操作數指令,指令中給出
兩個地址碼字段A1和A2,分別指明參與操作的兩個數在內存中
或運算器通用寄存器的地址,其中地址A1兼作存放操作結果的
地址。(Al)OP(A2)-A1如:ADDRI,R2
④三地址指令
三地址指令字中有二個源操作數地址Al,A2和一個目的操
作數地址A3。
(Al)OP(A2)-A3如:ADDRI,R2,R3
?在二地址指令格式中,從操作數的物理位置來說,又可歸
結為三種類型:
①(SS)型指令一存儲器-存儲器型指令,為訪問存儲器
的指令格式;
②(RR)型指令一寄存器-寄存器型指令,為訪問寄存器
的指令格式;
③(RS)型指令一寄存器-存儲器型指令,用于存儲器與
寄存器交換信息。
3.擴展操作碼技術
操作碼的位數隨地址數的減少而增加
|OPA】A2A3
0000AlA2A3
0001A1A2A3
4位操作碼????15條三地址指令
liio'A、入2鼠
im_oooo_ZA?
11110001A;A;
8位操作碼????15條二地址指令
liuliio42鼠
mimiooooA,
111111110001A;
12位操作碼????15條一地址指令
liuliiiliio入a
1111111111110000
1111111111110001
????條零地址指令
16位操作碼????16
liiiliiiliiiliii
7.2.2指令長度
例如,IBM370系列,它的指令格式有16位(半字)
的,有32位(單字)的,還有48位(一個半字)的。
在Pentium系列機中,指令格式也是可變的:有8位、
16位、32位、64位不等。
使用多字長指令,目的在于提供足夠的地址位來
解決訪問內存任何單元的尋址問題。其主要缺點是必
須兩次或多次訪問內存以取出一整條指令,降低了
CPU的運算速度,又占用了更多的存儲空間。(當然,
若采用指令流水線、多體交叉存儲等技術,可以較好
地4牟決at匕問題)
令。
[等長指令字結構]:各種指令字長
度是相等的。這種指令字結構簡單,
且指令字長度是不變的。
[變長指令字結構]:指令字的長度
隨指令功能而變化。這種指令字結
構靈活,能充分利用指令長度,但
指令的譯碼及控制較復雜。
7.3指令和數據的尋址方式
尋址方式一當采用地址指定方式時,
形成操作數的地址或指令地址的方式)稱
為尋址方式。尋址方式分為兩類,即指
令尋址方式和數據尋址方式。
7.3.1指令尋址方式
.順序尋址方式一指令逐條順序執行
,由PC+1-PC控制;
,跳躍尋址方式--程序執行轉移指令)下
條指令的地址不再是由PC給出,而是由本
條指令給出。
尋址方式確定本條指令的操作數地址
下一條欲執行指令的指令地址
T旨令尋址
尋址方式<
一數據尋址
內存
/一,
程序計數器F
指令地址指令內容
0LDA」00
1ADD201
2INC
3IMP6
4LDA206
5SVB207
6INC
,_____Z_________LDA___2QQ_7
(a)指令的順序尋址方式
然后程序計數耀加1,執行下1條指令;如此進行循環.
程序計數器(PC)
\PC=3
PC=6
⑹指令的跳躍尋址方式
7.3.2操作數類型和操作種類
1、操作數類型
地址無符號整數
數字定點數、浮點數、十進制數
字符ASCII
邏輯數邏輯運算
2、數據在存儲器中的存放方式
字地址低字節字地址低字節
32100123
76544567
字地址為低字節地址_字成址為高字節地址
存儲器中的數據存放(存儲字長為32位)
邊界對準地址(十進制)
字(地址0)0
字(地址4)4
字節(地址工工)字節(地址10)字節(地址9)字節(地址8)8
字節(地址15)字節(地址14)字節(地址13)字節(地址12)12
半字(地址18)/半字(地址16)/16
半字(地址22)/半字(地址20)/20J
241
雙字(地址24)上
雙字28
32
雙字(地址32)上
雙字36
|邊界未對準地址(十進制)
__________半字(地址0)|0
字節(地址7)字節(地址6)4
半字(地址10)半字(地址8)|8
7.3.3數據尋址
操作碼尋址特征形式地址A
形式地址指令字中的地址
有效地址操作數的真實地址
約定指令字長=存儲字長=機器字長
所謂操作數尋址方式,就是形成操作數
有效地址的方法。
例如:某單地址指令的結構如下所示,其中用
X,I,D各字段組成該指令的操作數地址。
一操作碼字段----------------操作數字段
即:指令中操作數字段的地址碼,是由形式地址
D和尋址方式特征位X、I等組合形成。
1.立即尋址
形式地址A就是操作數
立即尋址特征
-A_
OP#A
V
立即數可正可負補碼
?指令執行階段不訪存
?A的位數限制了立即數的范圍
2.隱含尋址。在指令中并不直接給出操作數
的地址)而是隱含著操作數的地址。例:ADD
B;另一個操作數的地址即隱含為累加器AC
4.間接尋址
指令
OP
(b)間接尋址方式
它從指令地址字段中的形式地址D中獲得操作數地址.
網次歷行,彭啊福令雙仃逑皮,現在匕小太便用。
例如:
5寄存器尋址方式和寄存器間接尋址方式
①寄存器直接尋址
如果指令的地址碼部分給出的是某通用寄存器編號燈,1
寄存器中存放著操作數,則稱為寄存器直接尋址。
例如:執行ADD仆指令,
該指令說明N是操作數的有效地址,從1中取出操作數
與累加器的內容相加,其結果放在累加器中。
尋址特征寄存器號
ADDRi
ARi操作數
②寄存器間接尋址
寄存器間接尋址,是指令中地址字段所指的寄存器中存放
的是操作數的地址。
例如:執行ADDQRj指令時,說明%不是操作數的有效地址,而
是存放操作有效地址的寄存器號。
操作碼尋址特勺寄存器號內存
ADD@[
R.操作數地址
'--------A操作數
6.相對尋址
把程序計數器PC的內容加上指令格式中的形式地址D而形成
操作數的有效地址。
E=(PC)±D
優點:相對于當前指令地址進行浮動。
傷I:INC[PC+200H]
這是一條加1指令,指令有效地址E=(PC)+200H=2200H
相對地址為1035。這個地址是不固定的,隨PC的值變化而變
化,并且相對地差一個固定值。因此,無論程序裝入存儲器
的任何區域,只要這個差值不變,程序均能正確運行。由于
程序在內存空間里是浮動的,又稱浮動尋址。
7.基址尋址方式
修CPU中基址寄存器Bx的內容加上指令格式中的形式地址而
形成操作數的有效地址。
E=(Bx)±D如:INC[Bx+300H]
這是一條加1指令,指令有效地址E=(Bx)+300H=0380H
指令
操作碼X2300H
存儲器
基址寄存器Hx
80H0380H操作數
8.變址尋址方式
把CPU中某個變值寄存器Rx的內容與偏移量D相加來形成操
作數的有效地址。
E=(Rx)±D如:INC[Rx+300H]
這是一條加1指令,指令有效地址E=(Rx)+300H=0380H
指令
操作碼|X3|SOPH
存儲騫
變址寄存春1
AAH[------08AAH
操作教
☆變址尋址和基址尋址尋址方法十分類似,但用途不同:
?變址尋址:主要便于數組訪問
?基址尋址:可擴大尋址范圍,可實現程序浮動。
例2:間址、變址尋址方式
INC[(Rx)+(100H)]
這是一條加1指令,指令有效地址:E=(Rx)+(100H)=1260H
9.段尋址方式
150
邏輯地址
存儲器物理地址
故物理地川可表示的空間為1M單位.
PDP/11計算機CPU中有8個程序可訪問的寄:
向器,其編號為REU卜7乍為程序計數器0-
廠指令中有3位用于尋址方式選擇,可指示8
種尋址方式。此外還有4種指令計數器型尋址方
作式屬于隱含尋址方式,它們以訪問R7(程序計
乜口數器)為標志。
151211109876543210
源地址--------------目標地址
各種操作數尋址方式及尋址特征位的編號,
見表:
尋址名尋址匯編
有效地址E說明
稱特征值格式
寄存器寄存器Rn的內容是操作數,
000E=RRn
型相當于直接地址
寄存器的內容是操作數
E=(R);Rn
直自增型010(Rn)+地址,然后遞增寄存器內
(R)+2-R容
接
(R)-2-R;先遞減寄存器Rn的內容,
自減型100-(Rn)
E=(R)然后作為操作數的地址
型
寄存器Rn的內容與本指令
(PC)+2-PC;
變址型110X(Rn)下一單元所存的數相加,
E=((PC))+(R)
作為操作數的地址
各種操作數尋址方式及尋址特征位的編號,
見表:
尋址名尋址匯編格
有效地址E說明
稱特征值式
寄存器Rn的內容作為操
寄存器QRn或
001E=(R)作數地址,相當于寄存
(Rn)
間接器間接地址
寄存器Rn的內容作為操
自增間E=((R));
間011o)(Rn)+作數地址的地址,然后
接(R)+2-R
寄存器Rn的內容遞減
接寄存器Rn的內容先遞減,
自減間(R)-2-R;
101o)-(Rn)然后作為操作數地址的
接E=((R))
型地址
指令下一個單元的內容
(PC)+2-PC;E
變址間與變址寄存器Rn所指示
111=((R))+((PC)o)X(Rn)
接的單元內容相加是操作
)
數的地址
序號尋址方式名稱有效地址E算法說明
(1)立即操作數在指令中
操作數在寄存器中,
(2)寄存器
指令給出寄存器號
(3)直接E=DispDisp為偏移量
(4)基址E=(RB)RB為基址寄存器
(5)基址+偏移量E=(RB)+Disp
力為變址寄存器,S為
(6)比例變址+偏移量E=(R[)xS+Disp
比例因子
(7)基址+變址+偏移E=(I<B)+(R[)+Disp
基址+比例變址+
(8)E=(RB)+(R1)xS+Disp
偏移量
PC為程序計數器或當
(9)相對E=(PC)+Disp前指令指針寄存器
7.5典型指令
7.5.1指令的分類
一個較完善的指令系統應當包括:
?數據傳送類指令:例)move、load、store等
?算術運算類指令:例)add、sub、mult、div、comp等
.移位操作類型
?邏輯運算類指令:例)and、or、xor、not等
?程序控制類指令:例)jump、branch、jsr、ret、int等
?輸入輸出指令:例)in、out等
-字符串類指令:例)如alpha中cmpbge、inswh、extbl等
?系統控制類指令:例)push、pop、test等
1.數據傳送類指令
這類指令的功能是實現寄存器與寄存器,寄存器與存
儲單元以及存儲單元與存儲單元之間的數據傳送。
數據傳送指令主要包括取數指令、存數指令、傳送指令、
成組傳送指令、字節交換指令、清累加器指令、堆棧操作
指令等等。
2.算術運算指令
這類指令包括二進制定點加、減、乘、除指令,浮點加、
減、乘、除指令,求反、求補指令,算術移位指令,算術比較
指令,十進制加、減運算指令等。這類指令主要用于定點或浮
點的算術運算。大型機(如IBM370機、國產銀河機、CRAY-1
機、CDC的STAR-100機等)中還設置有向量運算指令,可直
接對整個向量或矩陣進行求和、求積運算。
3.邏輯運算指令
這類指令包括邏輯加、邏輯乘、邏輯比較、測等指令、
按位加、邏輯移位等指令,主要用于無符號數的位操作、代
碼的轉換、判斷及運算。移位指令用來對寄存器的內容實現
左移、右移或循環移位。
4.程序控制指令
程序控制指令也稱轉移指令。執行程序時,有時機器執行
到某條指令時,出現了幾種不同結果,這時機器必須執行一條
轉移指令,根據不同結果進行轉移,從而改變程序原來執行的
順序。這種轉移指令稱為條件轉移指令。除各種條件轉移指令
外,還有無條件轉移指令、轉子程序指令、返回主程序指令、
中斷返回指令等。轉移指令的轉移地址一般采用直接尋址和
相對尋址方式去確定。
轉子指令是轉向本指令操作地址所指出的子程序入口,并將原
程序中下一條指令地址存入內存某單元(或指定的某個寄存器)
中,以便為返回主程序時提供返回地址。
5.輸入輸出指令
輸入輸出指令主要用來啟動外圍設備,檢查測試外圍設備
的工作狀態,并實現外部設備和CPU之間,或外圍設備與外圍設
備之間的信息傳送。
6.字符串處理指令
字符串處理指令是一種非數值處理指令,一般包括字符串
傳送、字符串轉換(把一種編碼的字符串轉換成另一種編碼的
字符串)、字符串替換(把某一字符串用另一字符串替換)等。
這類指令在文字編輯中對大量字符串進行處理。
7.特權指令
特權指令是指具有特殊權限的指令。這類指令只用于操作
系統或其他系統軟件,一般不直接提供給用戶使用。在多用
戶、多任務的計算機系統中特權指令必不可少。它主要用于系
統資源的分配和管理。
8.其他指令
除以上各類指令外,還有狀態寄存器置位、復位指令、測
試指令、暫停指令,空操作指令,以及其他一些系統控制用的
特殊指令。
例題1.某機指令格式如下
OPXD
151O987O
其中X為尋址特征位,且X=0時不變址;X=1時用變
址寄存器X1進行變址;X=2時用變址寄存器X2進行
變址;X=3時相對尋址。設(PC)=1234H,(Xi)
=1122H,請確定下列指令的有效地址(均用十六
進制表示)H表示十六進制);
(l)4420H(2)2244H(3)1322H(4)3521H
(5)6723H
解:⑴指令4420H展開為:O1OOO1O000100000B
X=00不變址,有效地址=口=002011
(2)指令2244H展開為:即10叫以01000100B
X=10用變址寄存器X2匪石陵耳青凝面t=(X2)
+D=1122H+44H=1166H
⑶指令1322H展開為:財]叫口00100010B
X=ll為相對尋址,有效地址=(PC)+D=1234H+
22H=1256H
(4)指令3521H展開為:則101?00100001B
X=01用變址寄存器X1迸石變£有雙而i=(Xi)
+D=0037H+21H=OO58H
(5)指令6723H展開為:里則」100100011B
X=ll為相對尋址,有效忠句二"c麗=而411+23H
=1257H
例題2:假設機器字長16位,主存容量為
128K字節,指令字長度為16位或32位,共
有128條指令,設計計算機指令格式,要求
有直接、立即數、相對、基值、間接、變
址六種尋址方式。
解:由已知條件,機器字長16位,主存容量(
128KB/16=64K字,因止匕MAR=16位,共128條才旨
令,故0P字段占7位。采用單字長和雙字長
兩種指令格式,其中單字長指令用于算術邏
輯和I/O類指令,雙字長用于訪問主存的指
令。
159:86543210
OPRi
159865320
OP
D
尋址方式由尋址模式X定義如下:
X=000直接尋址E=D(64K)
X=001立即數D=操作數
X=010相對尋址E=PC+D,PC=16位
X=011基值尋址E=Rb+D,Rb=16位
X=100間接尋址E=(D)
X=101變址尋址E=+D,=16位
RAYARY
7.5.2指令格式舉例
1、設計指令格式時應考慮的各種因素
(1).指令系統的兼容性(向上兼容)
(2).其他因素
操作類型包括指令個數及操作的難易程度
數據類型
指令格式指令字長、操作碼位數
尋址方式、是否采用擴展操作碼
地址碼位數、地址個數
尋址方式
寄存器個數
2、指令格式舉例
(1)PDP-8指令字長固定12位
訪存類指令操作碼間頁地址碼
0234511
I/O類指令110設備操作碼
0238911
寄存器類指令HI輔助操作碼
02311
(2)PDP-11
指令字長有16位、32位、48位三種
OP-CODE零地址(16位)
16擴展操作碼技術
OP-CODE目的地址一地址(16位)
106
OP源地址目的地址二地址R-R(16位)
466
OP目的地址存儲器地址二地址R-M(32位
二地址M—M(48位)
OP源地址目的地址存儲器地址1存儲器地址2
4661616
(3)IBM360
RR
OPR二地址R一R
格式Ri2
844
IX二地址R一M
OPRiXBD
,式基址加變址尋址
844412
RS三地址R一M
OPBD
珞式RiR3
844412基址尋址
SIOPIBD立即數一M
格式
88412基址尋址
SS
OPLBiDiBD
格式22
88412412
^—TVT
(4)Intel8086
(1)指令字長1?6個字節
INCAX1字節
MOVWORDPTR[0204],0138H6字節
⑵地址格式
零地址NOP1字節
一地址CALL段間調用5字節
CALL段內調用3字節
二地址ADDAX,BX2字節寄存器一寄存器
ADDAX,3048H3字節寄存器一立即數
ADDAX,[3048H]4字節寄存器一存儲器
7.5.3精簡指令系統計算機
1.RISC產生的時代背景
從計算機的發展過程來看,指令系統是隨著計算機體系結
構的完善聯系起來的。
?早期的計算機結構簡單,指令條數少,指令系統功能弱,
計算機的性能較差。
?隨著VLSI技術的迅速發展,硬件成本不斷下降,軟件成
本不斷上升,促進人們在指令系統中增加更多的指令和更
復雜的指令,以適應不同應用領域的需要。
?特別是系列機問世之后,為了能做到程序兼容,新設機
型或高檔機除了要繼承老機器的指令系統中的全部指令外,
還要增加若干新的指令,從而導致同一系列計算機的指令
系統越來越復雜,機器結構也越來越復雜。
對CIsc指令系統所作的運行統計分析表明,各種指令使
用頻率相差懸殊,常用的較為簡單的指令,僅占指令總數的
20%,但在程序中使用的頻率卻占80%。下表是HP公司研究
了IBM370計算機的高級語言運行情況后所得到的統計數據。
指令類別COBOLFORTRANPASCAL
轉移24.2%18.0%18.4%
1邏輯操作14.6%8.1%9.9%
存數取數40.2%48.7%54.0%
存儲單元送存儲單元12.4%2.1%3.8%
整數運算6.4%11.0%7.0%
浮點運算0.0%11.9%6.8%
十進制運算1.6%0.0%0.0%
其它0.6%0.2%0.1%
根據上述分析情況,國外一些計算機公司和大學開展了
對指令系統合理性的研究,1975年IBM公司的JohnCocke提出
了精簡指令系統的想法,后來
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 租賃店鋪的殘疾人士服務考核試卷
- 鑄造過程中的質量管理方法創新與實踐案例分析考核試卷
- 銀礦市場動態監測與投資決策分析考核試卷
- 過敏性休克病人急救護理
- 呼吸道疾病預防及措施
- 院前急救的常見護理技術
- 機場應急救援淺析課件
- 影像學呼吸系統概述
- 外科手部護理標準流程
- 感染控制管理規范實施框架
- 常州保安證考試題及答案
- 《化工和危險化學品生產經營單位重大生產安全事故隱患判定標準》解讀與培訓
- 《合理用藥安全教育》課件
- 優化能源消耗的綠色IT部署戰略規劃
- 2025年上半年內蒙古包頭市市直事業單位招考易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年度人工智能產業投資基金入股協議4篇
- 4.2.2光柵傳感器測量位移
- 2025年華遠陸港集團所屬華遠陸港網絡貨運(山西)限公司招聘(72人)管理單位筆試遴選500模擬題附帶答案詳解
- T-CCIASD 10012-2024 ISO 標準集裝箱用水性涂料
- 國家開放大學《金融學》機考題庫
- 證據法學復習資料
評論
0/150
提交評論