指令編碼及拓展

某機器採用16位字長指令,

(1)若採用定長操作碼,地址碼5位,現已定義60條二地址指令,那麼一地址指令最多多少條?   

(2)修改(1)條件爲不定長操作碼,其餘不變,答案如何?

 

1:

二地址指令格式如下

op操作碼6位

地址碼1:5位

地址碼2:5位

萬變指令格式不會變,定長操作碼,即操作碼定死爲6

又二地址指令有60條

6位總共能編碼2^6=64條

一地址指令=總編碼數-二地址指令條數=64-60=4條

 

2:

指令格式還是不變如上圖

但是操作碼不定死6了,它可以變動,拓展幾位可以編碼更多的指令

首先,已經佔用了60條,還剩4種編碼即如下四種情況:

op操作碼6位(前面4個1)

00

空,可利用

地址碼1:5位

op操作碼6位(前面4個1)

01

空,可利用

地址碼1:5位

op操作碼6位(前面4個1)

10

空,可利用

地址碼1:5位

op操作碼6位(前面4個1)

11

空,可利用

地址碼1:5位

這四種情況即用2位可以表示,那麼這兩位可以作爲拓展碼(拓展標誌)

當發現有拓展標誌的時候,後面兩個地址碼只用了一個,那麼空出來的那5位地址碼可以用來編碼一地址指令

即一指令=4種情況*2^5=4*32=128條

發佈了106 篇原創文章 · 獲贊 136 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章