我试图解决这项家庭作业但无法提出解决方案。以下是问题,
将此代码翻译成MIPS机器
once_more:
lw $5, 48($6)
sub $5, $5, $2
bne $5, $0, once_more
现在我遇到的问题是我不知道这个问题中寄存器的价值应该是什么(我只研究$t0-$t7
(8-15)和$s0-$s7
(16-23) )价值观)。谁能帮助我了解这些寄存器的价值?
提前谢谢。
答案 0 :(得分:2)
基于this document,我认为引用的寄存器如下:
$5
- > $a1
$6
- > $a2
$2
- > $v0
$0
是$zero
注册。
$a-
寄存器保存参数,而$v1
寄存器保存结果。这些寄存器的目的之一是供系统调用使用;例如,print_int
系统调用会将$a0
中的值打印为整数。
将这些转换为机器代码意味着您需要将汇编语句转换为等效的二进制机器。 MIPS Green Card会帮助您。查看“基本指令格式”部分,了解如何以二进制格式排列指令。