计算机组成原理——指令格式
計算機是通過執行指令來處理各種數據的。為了指出數據的來源、操作結果的去向及所執行的操作,一條指令必須包含下列信息:
(1)操作碼(OP),具體說明了操作的性質及功能
(2)第一操作數的地址A1A_{1}A1?
(3)第二操作數的地址A2A_{2}A2?
(4)操作結果存放地址A3A_{3}A3?
(5)下一條將要執行指令的地址A4A_{4}A4?
由上可得,一條指令包括兩種信息:操作碼,地址碼
此外補充一下其他知識:
字長:計算機在單位時間內(同一時間)能一次處理一組二進制數的位數,決定了計算機的運算精度和一次處理能力。其中包含了CPU、寄存器、Data bus等能夠一次傳輸數據的能力
字節:1Byte=8bit
地址碼長度(操作數):地址碼的位數,存儲器可以按字長存儲單元或字節存儲單元編址,地址碼的位數可以尋2N2^{N}2N個存儲單元地址。所以地址碼長度決定了指令的直接尋址能力。
指令長度:操作碼長度+操作數地址碼長度+操作數地址個數。指令長度和字長沒有固定的聯系
一、定長編碼指令格式
這是最簡單的一種編碼方法。操作碼字段的位數和位置固定,為能夠表示整個指令系統中的全部指令,指令的操作碼字段應當具有足夠的位數。
設指令系統共有m條指令,指令中操作碼字段的位數為N位,則滿足
m<=2N2^{N}2N
上圖為IBM370機的指令格式
二、變長編碼指令格式
變長編碼的操作碼字段位數是不固定的,且分散地放在指令字的不同位置上。
上圖為PDP-11機的指令格式圖(PPT里截的圖)
下面放一道例題來熟悉一下這兩種編碼方式的應用
例:設某計算機字長16位,欲使設計的指令系統有零地址指令16條,一地址指令有15條,二地址指令有15條,三地址指令有15條,設每個地址碼字段為4位,應如何設計?
解法一、定長操作碼解法
共需要滿足15+15+15+16=61條指令
由262^{6}26=64>61
所以操作碼長度為6位
零地址指令長度6位
一地址指令長度10位
二地址指令長度14位
三地址指令長度18位
若要求指令字長為字節的整數倍,則
零地址指令長度8位
一地址指令長度16位
二地址指令長度16位
三地址指令長度24位
解法二、操作碼擴展技術解法
242^{4}24=16>15
指令格式為
各個字段均為4位,指令長度16位。
(1)把4位操作碼的編碼0000~1110作為15條三地址指令的操作碼,1111作為擴展窗口把操作碼擴展到A1A_{1}A1?。
(2)8位操作碼編碼1111 0000~1111 1110作為15條二地址指令,1111 1111作為擴展窗口把操作碼擴展到A2A_{2}A2?。
(3)12位操作碼編碼1111 1111 0000~1111 1111 1110作為15條一地址指令,1111 1111 1111作為擴展窗口把操作碼擴展到A3A_{3}A3?。
(4)最后16位操作碼編碼1111 1111 1111 0000~1111 1111 1111 1111作為16條零地址指令。
PS:操作碼擴展法即在4位二進制表示的16個碼點中,用前15個(0000開始到1110)來表示最常用指令的操作碼,剩余的一個碼字(1111)作為擴展窗口把操作碼擴展到下一個4位。下一個4位表示的16個碼字按照同樣的原則處理和擴展。
總結
以上是生活随笔為你收集整理的计算机组成原理——指令格式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于多项目的资源管理方法[范文学习]
- 下一篇: 定位服务器的功能是提供用户位置信息和什么