有人能帮我做家庭作业吗?我不明白这个问题,你能给我解释一下吗?
下面是一个假设的循环迭代器的简写,它可能在MIPS指令集中。
itr $t6,循环# if(Rrs>0) Rrs=Rrs-1 PC=PC+4+BranchAddr
A)在可用的指令格式R、I、J中,哪种指令格式最适合itr?
B)使用现有的MIPS指令集实现itr。
C)根据计算机体系结构和计算机组成原理,阐述MIPS指令集中没有该指令的原因。
发布于 2019-10-11 02:04:04
循环itr $t6,循环# if(Rrs>0) Rrs=Rrs-1 PC=PC+4+BranchAddr
这是一个非正式的语法和解释。语法是有一个操作码(itr),它接受两个操作数:第一个是寄存器,第二个是标签。
#后面的内容表明他们期望指令做什么:粗略地说,这条指令是一个条件分支,它测试寄存器rs中的值是否>0-当大于0时,它将递减该寄存器,然后将分支转移到目标地址。如果不大于0,则不采用分支。
此指令可用于递减计数循环中。
让我们用C代码写出条件分支:
if ( rs > 0 ) {
rs--;
goto loop;
}
// ...else, fall thru to here...(a)如果这是一条真正的MIPS指令,他们想让你说出它会采用哪种格式。你应该为指令绘制一种格式,然后查看指定的格式,看看哪种格式最接近。
(b)他们希望您使用现有的MIPS指令序列执行此操作。您可以将上述C语言转换为MIPS汇编。
(c)从理论上解释为什么这条指令会很困难或与MIPS处理器的设计目标背道而驰(这些设计目标包括短周期持续时间和简单性)。
https://stackoverflow.com/questions/58328468
复制相似问题