题目
假设指令字长为16位,操作数的地址码为6位,指令有零地址、一地址、二地址三种格式。 (1)设操作码固定,若零地址指令有M种,一地址指令有N种,则二地址指令最多有几种? (2)采用扩展操作码技术,二地址指令最多有几种? (3)采用扩展操作码技术,若二地址指令有P条,零地址指令有Q条,则一地址指令最多有几种?
假设指令字长为16位,操作数的地址码为6位,指令有零地址、一地址、二地址三种格式。 (1)设操作码固定,若零地址指令有M种,一地址指令有N种,则二地址指令最多有几种? (2)采用扩展操作码技术,二地址指令最多有几种? (3)采用扩展操作码技术,若二地址指令有P条,零地址指令有Q条,则一地址指令最多有几种?
题目解答
答案
×
(1)根据操作数地址码为6位,则二地址指令中操作码的位数为16-6-6=4。这4位操作码可有16种操作。由于操作码固定,则除去了零地址指令M种,一地址指令N种,剩下二地址指令最多有16-M-N种。(2)采用扩展操作码技术,操作码位数可随地址数的减少而增加。对于二地址指令,指令字长16位减去两个地址码共12位,剩下4位操作码,共16种编码,去掉一种编码(如1111)用于一地址指令扩展,最多二地址指令可有15种操作。(3)采用扩展操作码技术,操作码位数可变,则二地址、一地址和零地址的操作码长度分别为4位、10位和16位。这样二地址指令操作码每减少一个,就可以多构成26条一地址指令操作码;一地址指令操作码每减少一个,就可以多构成26条零地址指令操作码。设一地址指令有R条,则一地址指令最多有(24-P)×26条,零地址指令最多有[(24-P)×26-R]×26条。根据题中给出零地址指令为Q条,即Q=[(24-P)×26-R]×26则R=(24-P)×26-Q×2-6
(1)根据操作数地址码为6位,则二地址指令中操作码的位数为16-6-6=4。这4位操作码可有16种操作。由于操作码固定,则除去了零地址指令M种,一地址指令N种,剩下二地址指令最多有16-M-N种。(2)采用扩展操作码技术,操作码位数可随地址数的减少而增加。对于二地址指令,指令字长16位减去两个地址码共12位,剩下4位操作码,共16种编码,去掉一种编码(如1111)用于一地址指令扩展,最多二地址指令可有15种操作。(3)采用扩展操作码技术,操作码位数可变,则二地址、一地址和零地址的操作码长度分别为4位、10位和16位。这样二地址指令操作码每减少一个,就可以多构成26条一地址指令操作码;一地址指令操作码每减少一个,就可以多构成26条零地址指令操作码。设一地址指令有R条,则一地址指令最多有(24-P)×26条,零地址指令最多有[(24-P)×26-R]×26条。根据题中给出零地址指令为Q条,即Q=[(24-P)×26-R]×26则R=(24-P)×26-Q×2-6
解析
步骤 1:确定二地址指令的操作码位数
由于指令字长为16位,操作数的地址码为6位,二地址指令需要两个地址码,因此二地址指令的操作码位数为16 - 6 - 6 = 4位。
步骤 2:计算二地址指令的操作码种类
4位操作码可以表示2^4 = 16种不同的操作码。由于零地址指令有M种,一地址指令有N种,因此二地址指令的操作码种类为16 - M - N种。
步骤 3:采用扩展操作码技术计算二地址指令的操作码种类
采用扩展操作码技术,二地址指令的操作码位数可以增加。指令字长为16位,减去两个地址码共12位,剩下4位操作码,共16种编码。去掉一种编码(如1111)用于一地址指令扩展,最多二地址指令可有15种操作。
步骤 4:计算一地址指令的操作码种类
采用扩展操作码技术,操作码位数可变。二地址指令操作码每减少一个,就可以多构成2^6条一地址指令操作码;一地址指令操作码每减少一个,就可以多构成2^6条零地址指令操作码。设一地址指令有R条,则一地址指令最多有(2^4 - P) × 2^6条,零地址指令最多有[(2^4 - P) × 2^6 - R] × 2^6条。根据题中给出零地址指令为Q条,即Q = [(2^4 - P) × 2^6 - R] × 2^6,则R = (2^4 - P) × 2^6 - Q × 2^-6。
由于指令字长为16位,操作数的地址码为6位,二地址指令需要两个地址码,因此二地址指令的操作码位数为16 - 6 - 6 = 4位。
步骤 2:计算二地址指令的操作码种类
4位操作码可以表示2^4 = 16种不同的操作码。由于零地址指令有M种,一地址指令有N种,因此二地址指令的操作码种类为16 - M - N种。
步骤 3:采用扩展操作码技术计算二地址指令的操作码种类
采用扩展操作码技术,二地址指令的操作码位数可以增加。指令字长为16位,减去两个地址码共12位,剩下4位操作码,共16种编码。去掉一种编码(如1111)用于一地址指令扩展,最多二地址指令可有15种操作。
步骤 4:计算一地址指令的操作码种类
采用扩展操作码技术,操作码位数可变。二地址指令操作码每减少一个,就可以多构成2^6条一地址指令操作码;一地址指令操作码每减少一个,就可以多构成2^6条零地址指令操作码。设一地址指令有R条,则一地址指令最多有(2^4 - P) × 2^6条,零地址指令最多有[(2^4 - P) × 2^6 - R] × 2^6条。根据题中给出零地址指令为Q条,即Q = [(2^4 - P) × 2^6 - R] × 2^6,则R = (2^4 - P) × 2^6 - Q × 2^-6。