繁体   English   中英

MIPS覆盖/存储变量中的值

[英]MIPS overwriting/storing values in variables

我在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加到其中。 谁能指出我正确的方向?

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

即:

  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:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM