【发布时间】:2013-04-04 15:19:35
【问题描述】:
我对以下 MIPS 代码有疑问: 如果将第一条指令放在内存地址 0xFFFFFF00 处,那么指令“j loopEnd”的十六进制表示形式是什么? 我不知道该怎么做。任何帮助将不胜感激。谢谢。
loop:
slt $t9, $s3, $s2
bne $t9, $zero, end
add $s4, $s2, $s3
srl $s4, $s4, 1
sll $t0, $s4, 2
add $t0, $s0, $t0
lw $t1, 0($t0)
slt $t9, $s1, $t1
beq $t9, $zero, bigger
addi $s3, $s4, -1
j loopEnd
loopEnd:
j loop
【问题讨论】:
-
为什么不运行
as,然后运行objdump来找出答案?对我来说似乎是最快和最简单的方法。 -
您好,我不确定您指的是什么。我应该手动计算。
-
我指的是使用汇编器和反汇编器。您的问题在当前状态下无法回答,因为您粘贴的代码中没有
loopEnd,这使得无法计算分支目标地址。 -
哦,抱歉,错过了 loopEnd 代码。重新编辑了我的 qn。