假定计算机M字长为32位。按字节编址,采用32位定长指令字,指令add slli 和 lw的格式、编码和功能说明如题43 (a)图所示。
其中R[x]表示通用寄存器x的内容,M[x]表示地址为x的存储单元内容, shamt为移位位数,imm为补码表示的偏移量。题43(b)图给出了计算机M的部分数据通路及其控制信号(用箭头虚线表示),其中,A和B分别表示从通用寄存器rs1和rs2中读出的内容,IR[31:20]表示指令寄存器中的高12位。控制信号Ext为0、1时扩展器分别实现零扩展,符写扩展ALUctr为000、001、010时ALU分别实现加、减、逻辑左移运算。
请回答下列问题
(1)计算机M最多有多少个通用寄存器?为什么shamt字段占5位?(2分)
(2)执行add指令时,控制信号ALUBsrc的取值应该是什么?若rs1和rs2寄存器内容分别是8765 4321H和9876 5432H,则add指令执行后,ALU输出端F、OF和CF的结果分别是什么?若设add指令处理的是无符号整数,则应根据哪个标志判断是否溢出(3分)
(3)执行slli指令时,控制信号Ext 的取值可以是0也可以是1,为什么?(2分)
(4)执行lw指令时,控制信号Ext、ALUctr的取值分别是什么?(2分)
(5)若一条指令的机器码是A040 A103H,则该指令一定是lw指令,为什么?(2分)
(6)若执行该指令时,R[01H]=FFFF A2D0H,则所读取数据的存储地址是多少?(2分)
登录后提交答案
暂无评论,来抢沙发