指令簡單說來就是機器語言的語句。
指令由操作碼(op)和位址碼(a)兩方面構成。
指出運算元的位址
給出結果存放的位址
(以上位址可以是主存位址、暫存器位址、i/o位址)
位址碼可以是運算元本身、運算元位址或者運算元位址的計算方法。
每一條指令都包含操作碼(每一條指令都必須告訴cpu該指令做什麼操作)。
opa1
a2a3
a4執行四位址指令需要訪問4次儲存器(取指令一次,取運算元兩次,存放結果一次)
缺點:占用儲存空間
設指令字長為32位,操作碼佔8位,4個位址欄位各佔6位,則指令運算元的直接定址範圍為26=64
opa1
a2a3
去掉a4:
執行四位址指令需要訪問4次儲存器(取指令一次,取運算元兩次,存放結果一次)
缺點:占用儲存空間
設指令字長為32位,操作碼佔8位,3個位址欄位各佔8位,則指令運算元的直接定址範圍為28=256
opa1
a2後續指令的位址隱含在程式計數器中
得到的結果覆蓋以前的源運算元,而不是儲存到新的主存位址中。
執行四位址指令需要訪問4次儲存器(取指令一次,取運算元兩次,存放結果一次)
設指令字長為32位,操作碼佔8位,2個位址欄位各佔12位,則指令運算元的直接定址範圍為212=4k
注意:若將結果存放到暫存器中,則只需要3次訪問儲存器(取指令一次,取運算元兩次)
opa1
其中乙個運算元隱藏在運算器的acc中,這樣,取其中乙個源運算元就可以直接在acc中進行了,而且金**需要訪問一次儲存器去另外乙個運算元就夠了
停機指令、空指令不需要位址碼
可以用硬體來換取空間,即使用諸如pc、acc等硬體來減少指令字中需指明的位址碼,可在不改變指令字長的前提下,擴大指令運算元的直接定址範圍。此外,還可以使用諸如pc、acc等硬體縮短指令字長以及減少訪存次數。
以上討論的位址均為主存位址格式,實際上,位址格式也可以是用來表示暫存器的編號(當cpu中含有多個通用暫存器時,對每乙個暫存器賦予乙個編號,便可以指明源運算元和結果存放在哪乙個暫存器中)。當位址字段表示暫存器時,也可由三位址、二位址、一位址之分,它們的共同點是,在指令執行階段都不必訪問儲存器(只需在取指令是訪問一次儲存器),直接訪問暫存器,使機器執行速度得到提高。
定長操作碼指令是指在字的最高位部分分配固定的若干為表示操作碼。對於具有n位操作碼欄位的指令系統,最多能夠表示2n條指令。
操作碼長度不固定;
操作碼的長度隨位址碼個數的減少而增加;
不同的位址數可以具有不同長度的操作碼。
在滿足需要的前提下,有效縮短了指令字長。
從王道考研盜了張圖:
不允許短碼是長碼的字首
各指令的操作碼一定不能重複
基本指令1
題目名稱 linux實驗 基本指令1 題目關鍵字 linux實驗 基本指令1 題目錄入時間 2013 4 1 22 36 02 題目內容 1 root帳號登入,檢視 tmp目錄,如果 tmp目錄下沒有子目錄myshare,則建立該目錄。2 建立帳號testuser。adduser 3 把myshar...
Linux基本指令 1
1.ls指令 語法 ls 選項 目錄或檔案 功能 1.對於目錄,該命令列出該目錄下的所以子目錄和檔案 2.對於檔案,將列出檔名以及其他資訊 0429 localhost lsls l 列出檔案的詳細資訊 0429 localhost ls l 總用量 0 drwxr xr x.2 0429 0429...
vuejs 基本指令1
碼雲 gitee gitlab 乙個產品,完全類似github或者gitee,是乙個可以在企業內部執行的 託管平台 商業公司更願意使用 svn 作為版本控制器 coding.net 深圳一家公司做的 的託管平台 v for 遍歷陣列,物件 1,v for 是些在最小的迴圈單元裡面的 2,v for ...