2015-10-29 2 views
0

У меня возникают проблемы с установкой значений в моей программе MIPS. , если х = у: г = 78 ш = 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 к г и ш соответственно. Однако есть значения, которые хранятся в этих переменных, поэтому, когда я пытаюсь установить их на 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

Смежные вопросы