首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MIPS/QtSpim寄存器1保留用于汇编程序错误

MIPS/QtSpim寄存器1保留用于汇编程序错误
EN

Stack Overflow用户
提问于 2017-12-12 18:50:43
回答 1查看 691关注 0票数 0

我正在尝试用MIPS编写一个汇编程序,当我试图使用一个没有伪指令的for循环时,我在QtSpim中得到了这样的错误:“寄存器1是为文件E:/Rechnerorganisation/Qtspim/Rechneruebung Vorgaben/minimum_finden.s slt $at,$t0,$a1 #slt (i”)的第16行上的汇编程序保留的。有谁可以帮我?

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2017-12-12 18:56:57

根据一些google group post,您可以通过以下方式暂时关闭仅为汇编程序保留的at

代码语言:javascript
复制
    .set noat   # switch off assembler warning about $at usage
    ... your code using $1 ...
    .set at     # switch on assembler warning about $at usage

我没有验证自己,我只安装了MARS,在那里我可以在没有任何警告或错误的情况下利用at,只是我自己冒着风险(无法识别我在哪里通过隐藏的伪指令使用at -但我总是使用完全反汇编进行调试,所以我会及早发现这样的问题)。

编辑:spim documentation中也提到了这一点,所以它应该可以工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47770785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档