Assembly MIPS覆盖/存储变量中的值
我在MIPS程序中设置值时遇到问题。 如果x!=y:z=78 w=5//转换为MIPS的指令Assembly MIPS覆盖/存储变量中的值,assembly,mips,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。有人能告诉我我做错了什么吗? 您不需要将新值存储到它们各自的变量中,您也不需要
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。有人能告诉我我做错了什么吗?- 您不需要将新值存储到它们各自的变量中,您也不需要读取它们,因为您不需要它来计算新值(这是示例中的常量)
- 另外,您的分支是错误的,两种可能的结果都只是执行下一条指令。您必须使用相反的比较并分支到零件后面的位置
非常感谢。非常有效谢谢你指出我的疏忽。
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: