MIPS在变量中覆盖/存储值

时间:2015-10-29 15:02:09

标签: assembly mips

我在MIPS计划中设置值时遇到问题。     如果x!= y:z = 78 w = 5 //转换为MIPS的指令

lw $t1,x
lw $t2,y
bne $t1,$t2, label
label: 
lw $t3,z
lw $t4,w      
li $t4,5
li $t3,78

一切正常,直到我需要分别为z和w分配78和5。然而,有些值存储在这些变量中,因此当我尝试将它们设置为78或5时,它只会将78或5添加到其中的任何内容。任何人都可以指出我正确的方向我做错了吗?

1 个答案:

答案 0 :(得分:0)

  • 您没有将新值存储到各自的变量中,您也不需要读取它们,因为您不需要它来计算新值(这是样本中的常量)。
  • 你的分支也是错误的,两种可能的结果都只是执行下一条指令。您必须使用相反的比较并分支到然后部分之后的位置。

即:

  lw $t1,x
  lw $t2,y
  beq $t1,$t2, skip # branch if condition not met
  li $t4,5
  li $t3,78
  sw $t3,z
  sw $t4,w      
skip: