A-A+

假定一台计算机具有32个通用寄存器 该计算机的指令糸统可以完成62个操作。在该指令系统中 有

2022-08-12 13:52:04 问答库 阅读 196 次

问题详情

假定一台计算机具有32个通用寄存器,该计算机的指令糸统可以完成62个操作。在该指令系统中,有一条整数除法指令,记为DIVi,该指令的长度为20位。对于DIVi除数可以存放在任何一个通用寄存器中,商存放在指定的寄存器中,余数也存放在寄存器中。若采用直接寻址方式,则除数与余数也都放在指定寄存器中,寻址范围为________。若采用寄存器间接寻址方式,则可供存放余数的寄存器最少有________个。若采用基址寻址方式,余数存放在指定的寄存器中,地址偏移量的范围为-32~31,可以作为基址寄存器的寄存器有________个。


请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:16K;16;8。
据题意,对于DIVi,题中只有被除数存放位置没有确定,其余的除数、商和余数都是在寄存器中,所以题目中的直接寻址等方式可以理解为被除数的寻址方式。指令系统有62个操作,故操作码需6位编码。通用寄存器共32个,所以需要5位编码来表示。若采用直接寻址方式,除数与余数也都放在指定寄存器中,题目中又有商也在指定的寄存器中,所以在指令中三者都不需要表示出来,而由操作码隐含表示。指令总长为20位,故采用直接寻址的被除数地址位数为:20—6=14位,寻址范围为214=16K。若被除数采用寄存器间接寻址方式,需要5位编码来表示寄存器号。除数可以存放在任何一个通用寄存器中,所以也需要5位编码,商存放在指定的寄存器中,所以在指令中不需要表示出来,而由操作码隐含表示。所以在指令码中剩下表示余数的位数为20—6—5—5=4位,则可供存放余数的寄存器最少有24=16。若被除数采用基址寻址方式,据题意除数可以存放在任何一个通用寄存器中,则需要5位编码,商和余数存放在指定的寄存器中,则在指令中不需要表示出来。而基址寻址中的地址偏移量为-32~31,则可采用6位补码表示,所以指令码中剩下表示基址寄存器的位数为:20—6—5—6=3位,则可供存放余数的寄存器最少有23=8。

考点:指令,计算机