0

我试图解决这个家庭作业,但无法提出解决方案。下面是问题,

将此代码翻译成 MIPS 机器

once_more:
    lw $5, 48($6)
    sub $5, $5, $2
    bne $5, $0, once_more

现在我面临的问题是我不知道这个问题中寄存器的值应该是什么(我只研究了$t0-$t7(8-15)和$s0-$s7(16-23)值)。任何人都可以帮助我了解这些寄存器的值吗?提前致谢。

4

1 回答 1

2

基于this document,我认为引用的寄存器如下:

  • $5->$a1
  • $6->$a2
  • $2->$v0

$0$zero寄存器。

$a-寄存器保存参数,而$v1寄存器保存结果。这些寄存器的用途之一是供系统调用使用;例如,print_int系统调用会将值打印$a0为整数。

将这些转换为机器代码意味着您需要将汇编语句转换为二进制机器等效项。MIPS 绿卡将在这里为您提供帮助。查看“基本指令格式”部分,了解指令是如何以二进制形式排列的。

于 2011-08-09T18:11:40.160 回答