【发布时间】:2021-01-27 16:03:52
【问题描述】:
C 语言
while (save[i] == k)
i += 1;
i→ $s3
k → $s5
base addr of save → $s6
sll $t1, $s3, 2 #$t1 = 4*$s3
add $t1, $t1, $s6 #$t1 = address of save[i]
lw $t0, 0($t1) #t0 = save[i]
bne $t0, $s5, Exit #$t0!=$s5 Exit
Loop: addi $s3, $s3, 1 #i+=1
addi $t1, $t1, 4 #point to next cell
lw $t0, 0($t1) #t0 = save[i]
beq $t0, $s5, Loop #$t0==$s5 loop again
Exit:
我想问的是,addi $s3, $s3, 1这行是否必要?
因为,无论如何 $ t1 增加了 4。
【问题讨论】:
标签: c assembly while-loop mips