經統計,某機器14條指令的使用頻度分別為:0.01,0.15,0.12,0.03,0.02,0.04,0.02,0.04,0.01,0.13,0.15,0.14,0.11,0.03。分別求出用等長碼、Huffman碼、只有兩種碼長的擴展操作碼3種編碼方式的操作碼平均碼長。 解: 等長操作碼的平均碼長=4位 Huffman編碼的平均碼長=3.38位 只有兩種碼長的擴展操作碼的平均碼長=3.4位。 9.若某機要求:三地址指令4條,單地址指令255條,零地址指令16條。設指令字長為12位.每個 地址碼長為3位。問能否以擴展操作碼為其編碼?如果其中單地址指令為254條呢?說明其理由。 答:①不能用擴展碼為其編碼。 ∵指令字長12位,每個地址碼占3位; ∴三地址指令最多是2^(12-3-3-3)=8條, 現三地址指令需4條, ∴可有4條編碼作為擴展碼, ∴單地址指令最多為4×2^3×2^3=2^8=256條, 現要求單地址指令255條,∴可有一條編碼作擴展碼 ∴零地址指令最多為1×2^3=8條 不滿足題目要求 ∴不可能以擴展碼為其編碼。 ②若單地址指令254條,可以用擴展碼為其編碼。 ∵依據①中推導,單地址指令中可用2條編碼作為擴展碼 ∴零地址指令為2×2^3=16條,滿足題目要求