0

我坚持解决我的任务。这是它所说的,

考虑以下 MIPS 汇编语言代码片段:

start:   add $t1, $t2, $t3
         addi $t1, $t1, 10
         add $t4, $t2, $t2
         add $t6, $t3, $t3
         beq $t1, $t4, q_final
middle:  add $t1, $0, $0
         bne $t6, $t4, s_final
         add $t7, $t7, $t7
j final
q_final: slt $t1, $t4, $t6
s_final: add $t7, $t7, $t1
final:   jr $ra

a) 如果标签 start 的值为 100(所有数字均为十进制),标签 middle、q_final 和 final 指定的地址是什么?我对如何进行感到困惑。我在想,在每个语句中添加 4 会给出其他标签的值。还有另一种更好的方法吗?

提前致谢。

4

1 回答 1

2

我对如何进行感到困惑。我在想,在每个语句中添加 4 会给出其他标签的值。还有另一种更好的方法吗?

越简单越好(mips!)。如果每条指令占用 4 个字节,那就差不多了。

100:     add $t1, $t2, $t3
104:     addi $t1, $t1, 10
108:     add $t4, $t2, $t2
112:     add $t6, $t3, $t3
116:     beq $t1, $t4, 132
120:     add $t1, $0, $0
124:     bne $t6, $t4, 136
128:     add $t7, $t7, $t7

132:     slt $t1, $t4, $t6
136:     add $t7, $t7, $t1
140:     jr $ra

顺便说一句,谁用十进制表示内存地址?

于 2011-08-09T17:14:32.430 回答