问答题 现在要设计一个单片机,但机器字长尚悬而未决。有两种方案等待决择:一种是指令字长16位,另一种是指令字长20位。该处理机的硬件特色是:有两个基值寄存器(20位);有两个通用寄存器组,每组各包括16个寄存器。请问:(1)16位字长的指令和20位字长的指令各有什么优缺点?哪种方案较好?(2)如果选用20位的指令字长,基址寄存器还有保留的必要吗?
【正确答案】正确答案:(1)采用16位字长的指令,原则上讲,优点是节省硬件(包括CPU中的通用寄存器组,ALU与主存储器,MDR),缺点是指令字长较短,操作码字段不会很长,所以指令条数受到限制。另一方面,为了在有限的字段内确定操作数地址,可能要采用较复杂的寻址方式,从而使指令执行的速度降低。当采用20位字长的指令结构时,其优缺点正好相反。 具体讲,按所给条件,16位字长的指令格式方案如下: 其中OP字段可指定64条指令,X 1 为寻址模式,与R 1 通用寄存器组一起,形成一个操作数。具体如下: X 1 =00 寄存器直接寻址 X 1 =01 寄存器间接寻址 E=(R s ) X 1 =10 基寻址方式0 E=(R b0 )+(R s ) X 1 =11 基寻址方式1 E=(R b1 )+(R s ) 其中R b0 ,R b1 分别为两个20位的基值寄存器。 20位字长指令格式方案如下:
【答案解析】