问答题 某机器采用一地址格式的指令系统,允许直接和间接寻址(机器按字寻址)。机器配有如下硬件:ACC、MAR、MDR、PC、X、MQ、IR以及变址寄存器Rx和基址寄存器RB,均为16位。
问答题 若采用单字长指令,共能完成105种操作,则指令可直接寻址的范围是多少?一次间接寻址的范围又是多少?
【正确答案】首先,由于MDR为16位,因此可以得出存储字长为16位。又由于采用了单字长指令,因此指令字长为16位。根据题目知道需要实现105种操作,所以操作码需要7位。从题意可以看出,需要实现直接寻址、间接寻址、变址寻址、基址寻址这4种寻址方式,故取两位寻址特征位,最后得指令格式为:
操作码 寻址方式I 形式地址A
其中,操作码占7位,可完成105种操作;寻址方式I占2位,可实现4种寻址方式;形式地址A占7位,故直接寻址的范围为27=128。由于存储字长为16位,因此一次间接寻址的寻址范围为216=64K。
【答案解析】
问答题 若采用双字长指令,操作码位数及寻址方式不变,则指令可直接寻址的范围又是多少?画出其指令格式并说明各字段的含义。
【正确答案】双字长指令格式如下:
操作码 寻址方式I 形式地址A
形式地址B
形式地址A和B共同构成新的形式地址,故形式地址占23位,所以可直接寻址的范围为223=8M。
【答案解析】
问答题 若存储字长不变,可采用什么方法访问容量为8MB的主存?需增设哪些硬件?
【正确答案】容量为8MB,即8M×8位的存储器。由于现在的存储字长(或者因为MDR为16位)为16位,因此可以将8MB写成4M×16位。从上面问题可以知道,双字长指令可以访问8MB的容量,肯定可以满足要求,是一种不错的办法。还有一种方法就是将变址寄存器RX和基址寄存器RB取22位,那么就可以采用变址寻址和基址寻址来访问到4M的存储空间。
思考:如果此题不加“若存储字长不变”这个限制条件,那么还有什么方式可以做到?
如果此题没有该限制,则可以采用间接寻址,因为间接寻址的寻址范围取决于存储字长。只要改变存储字长,就可改变间接寻址的寻址范围,从而满足题意。
【答案解析】