操作码指令扩展
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作码指令扩展 SANY GROUP system office room 【SANYUA16H-
题一某计算机指令字长为16位,指令有双操作数、单操作数和无操作数3种格式,每个操作数字段均用6位二进制表示,该指令系统共有m条(m<16)双操作数指令,并存在无操作数指令。若采用扩展操作码技术,那么最多还可设计出()条单操作数指令。A.2^6B.(2^4-m)*(2^6)- 1 C.(2^4-m)*2^6D.(2^4-m)*(2^6-1)
答案选 B 分析:对于双操作数指令而言,两个长度为6位的操作数共占了12位,剩余的4位用作操作码,所以可以设计出2的四次方个双操作数指令。系统中已经设计出了m条双操作数指令,那么剩余的2^4-m条可以用于设计单操作数的操作码。对于单操作数指令而言,它的操作码长度为16-6=10位。题目中要求使用扩展操作码技术,所以单操作数指令在原来的双操作数指令的4位操作码上可以扩展10-4=6位,所以最多可以设计出(2^4-m)*(2^6)-1条单操作数的指令。减去1的原因是“存在无操作数指令”,所以至少留下一个用来扩展无操作数指令。
题二指令字长为16位,采用扩展操作码技术,形成15条三地址指令、12条二地址指令、31条一地址指令和16条零地址指令。三地址:(15条) 0000************
............ 1110************
二地址:(12条) 11110000******** ............ 11111011********
一地址:(31条) 111111000000**** ............ 111111011110****
零地址:(16条) 1111110111110000 ............ 111111********* 1
若某机要求:三地址指令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条
不满足题目要求
∴不可能以扩展码为其编码。
某计算机指令长度为32位,有3种指令:双操作数指令、单操作数指令、无操作数指令。今采用扩展操作码的方式来设计指令,假设操作数地址为12位,己知有双操作数指令K条,单操作数指令L条,问无操作数指令有多少条
答案:
解:对于双操作数指令,操作码长度为(32-12×2)=8位;
对于单操作数指令,操作码长度为(32-12)=20位,可扩展位为20-8=12位;对于无操作数指令,操作码长度为32位,可扩展位为32-20=12位。
由于双操作数指令有K条,而双操作数最多有28条,所以留有(28-K)个编码用于扩展到单操作数指令;
单操作数指令有L条,而单操作数指令最多有(28-K)×212条,所以留有[(28-K)×212-L]个编码用于扩展到无操作数指令;
根据以上分析:无操作数指令条数=[(28-K)×212-L]×212。