機器指令系統的分類、常見的尋址方式、指令格式、設計指令系統時應考慮的各種因素。
人們習慣把每一條機器語言的語句稱為機器指令,将全部機器指令的集合稱為機器的指令系統。
機器的指令系統集中反應了機器的功能。
指令的一般格式
指令由操作碼和位址碼組成
操作碼
其位數反應了機器的操作種類,機器允許的指令條數
通常采用擴充操作碼技術,使操作碼的長度随位址數的減少而增加,不同的位址數指令可以具有不同長度的操作碼,進而滿足需要的前提下,有效縮短指令字長。
位址碼
這裡的“位址”可以是主存的位址,也可以是寄存器的位址,甚至可以使I/O裝置的位址。
四位址指令
OP為操作碼;A1為第一操作數位址;A2為第二操作數位址;A3為結果位址;A4為下一條指令的位址。
三位址指令
可以完成(A1)OP(A2)->A3的操作,後續指令的位址隐含在程式計數器PC之中。
二位址指令
可以完成(A1)OP(A2)->A1的操作,即A1字段既代表源操作數的位址,又代表了本次運算結果的位址。直接尋址範圍為2的12次方=4K。
一位址指令
可以完成(ACC)OP(A1)->ACC的操作,ACC既存放參與運算的操作數,又存放運算的中間結果。指令字長為32位,操作碼位數為8位,直接尋址範圍為2的24次方=16M。
零位址指令
零位址指令在指令字中無位址碼,例如空操作(NOP),停機(HLT)這類指令沒有位址碼。
而子程式傳回(RET)、中斷傳回(IRET)這類指令沒有位址碼,其操作數的位址隐含在堆棧指針SP中。
位址字段表示寄存器時,也有三位址、二位址、一位址之分,在指令的執行階段都不必通路存儲器,直接通路寄存器,使機器運作速度得到提高(因為寄存器類型的紫菱隻需在取指階段通路一次存儲器)。
指令字長
指令字長取決于操作碼的長度、操作數位址的長度和操作數位址的個數。
早期的計算機指令字長是固定的,随着計算機的發展,一台機器的指令系統可以采用位數不相同的指令,多次通路存儲器,使CPU速度下降,常用的指令設計成單子長或短字長。
操作數類型
位址:無符号整數
數字:定點數、浮點數和十進制數
字元:普遍采用ASCII碼
邏輯資料
資料在存儲器中的存放方式
存放在存儲器或寄存器中,寄存器的位數便可反應機器字長。
存儲器存儲字長如果為32位,可按位元組、半字、字、雙字通路。
操作類型
資料傳送、算術邏輯操作、移位、轉移(無條件轉移、條件轉移、調用與傳回、陷阱Trap與陷阱指令)、輸入輸出、其他(等待指令、停機指令、空操作指令、開中斷指令、關中斷指令、置條件碼等指令)。
尋址方式
尋址方式分為指令尋址和資料尋址
指令尋址分為順序尋址和跳躍尋址兩種。
資料尋址
指令的位址碼字段通常都代表操作數的真實位址,把它稱為形式位址,記作A;
操作數的真實位址稱為有效位址,記作EA。
1、立即尋址
立即尋址的特點是操作數本身設在指令字内,即形式位址A不是操作數的位址,而是操作數的本身,又稱為立即數。
2、直接尋址
直接尋址的特點是,指令字中的形式位址A就是操作數的真實位址。
EA = A
3、隐含位址
隐含位址是指指令字中不明顯的給出操作數的位址,其操作數的位址隐含在操作碼或寄存器中
EA = A + (ACC)
4、間接尋址
倘若指令字中的形式位址不直接指出操作數的位址,而是指出操作數有效位址所在的存儲單元
EA = (A)
5、寄存器尋址
在寄存器尋址的指令中,位址碼字段直接指出了寄存器的編号
EA = R
6、寄存器間接尋址
Ri中的内容不是操作數,而是操作數所在的主存單元的位址号,即EA = (Ri)。
7、基址尋址
基址寄存器BR
EA = A + (BR)
8、變址尋址
變址寄存器IX
EA = A + (IX)
9、相對尋址
EA = (PC)+ A
相對尋址也可與間接尋址配合使用
RISC技術
RISC即精簡指令系統計算機,與其對應的是CISC,即複雜指令系統計算機。
能否用最常用的20%的簡單指令,重新組合不常用的80%的指令功能呢?這便引發出RISC技術。
RISC主要特征
執行程式所需的時間P
P = I * C * T
I是進階語言編譯後在機器上運作的機器指令數;
C為執行每條機器指令所需的平均機器周期;
T是每個機器周期的執行時間。
RISC和CISC的比較
1、充分利用VLSL晶片的面積
2、提高計算機運算速度
3、便于設計,可降低成本,提高可靠性
4、有效支援進階語言程式