10*($a0+;4)带有MIPS装配说明

10*($a0+;4)带有MIPS装配说明,mips,instructions,Mips,Instructions,你们在回答问题时通常都很快而且很有帮助,所以我想就我遇到的MIPS问题寻求帮助。我试了一下,你可以在下面看到我的代码,但我觉得这是错误的,因为10让我感到困惑。我所需要的只是有人告诉我我是否在正确的轨道上(如果代码是错误的,当涉及MIPS时,我是新的),或者可能给出提示/显示一个可以工作的代码 这是:10*($a0+4),它应该存储在$v0 我的代码: addi $t0, $a0, 2 li $t1, $t1, 3 li $t2, $t2, 1 addi $t3, $t2, $t1 sll $v

你们在回答问题时通常都很快而且很有帮助,所以我想就我遇到的MIPS问题寻求帮助。我试了一下,你可以在下面看到我的代码,但我觉得这是错误的,因为10让我感到困惑。我所需要的只是有人告诉我我是否在正确的轨道上(如果代码是错误的,当涉及MIPS时,我是新的),或者可能给出提示/显示一个可以工作的代码

这是:
10*($a0+4)
,它应该存储在
$v0

我的代码:

addi $t0, $a0, 2
li $t1, $t1, 3
li $t2, $t2, 1
addi $t3, $t2, $t1
sll $v0, t3, $t0

如果您对代码添加了注释,您将立即看到问题

addi $t0, $a0, 2   # $t0 = $a0 + 2
li $t1, $t1, 3     # $t1 = 3
li $t2, $t2, 1     # $t2 = 1
addi $t3, $t2, $t1 # $t3 = $t2 + $t1 = 3
sll $v0, t3, $t0   # $v0 = $t3 << $t0 = 3 << ($a0 + 2) = 8*($a0 + 2)

记住写评论

请添加评论以显示您的理解。你试过组装/运行它吗?非常感谢你的帮助!!我对这个很困惑。
addi $a0, $a0, 4   # $a0 = $a0 + 4
sll  $a0, $a0, 1   # $a0 = $a0 << 1 = 2*$a0
sll  $t0, $a0, 2   # $t0 = $a0 << 3 = 8*$a0
add  $v0, $t0, $a0