【发布时间】:2017-12-12 10:50:42
【问题描述】:
我正在尝试在 MIPS 中编写一个汇编程序,当我尝试使用没有伪指令的 for 循环时,我在 QtSpim 中收到错误消息,指出“寄存器 1 在文件 E:/Rechnerorganisation/ 的第 16 行为汇编程序保留Qtspim/Rechneruebung Vorgaben/minimum_finden.s slt $at, $t0, $a1 #slt (i"。谁能帮帮我?
findminimum:
addi $t0, $zero, 1 #int i = 1
add $t1, $zero, $zero #beginn vom laden von int min = a[0]
sll $t1, $t1, 2
add $t1, $a0, $t1
lw $t1, 0($t1) #min = a[0
for:slt $at, $t0, $a1 #slt (i<n) # line 16
beq $at, $zero, endfor #if(i>=n) go to endfor
sll $t2, $t0, 2
add $t2, $a0, $t2
【问题讨论】:
-
MIPS 有很多其他的规则,所以最简单的方法就是使用
$t3。如果您已经用完$t0..$t9并且没有任何其他$a或$v或其他您想要破坏的寄存器,您只需要让您的汇编器让您使用$at。 (并不是说使用$at有什么问题,或者问你是否好奇。)