2015-10-29 70 views
0

我在MIPS程序中設置值時遇到問題。 如果X = Y:Z = 78 W = 5 //指令轉換爲MIPSMIPS覆蓋/存儲變量值

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

一切正常,直到我需要分配78和5至Z和W分別。但是,有些值存儲在這些變量中,所以當我嘗試將它們設置爲78或5時,它只會將78或5添加到那裏。任何人都可以指出我正確的方向,我做錯了什麼?

回答

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: 
+0

非常感謝。謝謝指出我的疏忽。 – derp