操作码指令扩展

操作码指令扩展
操作码指令扩展

操作码指令扩展 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。

相关主题
相关文档
最新文档