我有以下MIPS代码只执行一次,我需要计算总共执行的有用的添加和减少的数量。
L: sub $s0,$s1,$s2
slt $s3,$s0,$s4
lw $t0,0($sp)
add $t1,$t0,$s1
beq $t1,$t3,L
我认为共有11项行动:
the subtraction
PC+4
the subtraction for slt
PC+4
R[rs]+SignExtImm for lw
PC+4
the addition
PC+4
the subtraction in ALU for beq
PC+4
PC+4+BranchAddr
然而,11在多项选择中不是可能的选择。
答案 0 :(得分:0)
我做了自己的事。除beq
你重复计算PC+4
。 AFAICT,该指令 <{em> PC+4
或PC+(offset << 2)
但不。
所以,这会使计数从11减少到10.这是肯定的。
但是,我不确定beq
是否使用减法进行比较。 IMO,更有可能是一个XOR操作[更少的电路,更快,相当平等/不等的测试的标准逻辑],所以将计数降低到9。
YMMV ......