2013-04-23 2 views
-1

У меня возникли проблемы с правильной работой этого кода на 100%. Если пользователь вводит большее число в качестве первого номера, то программа дает правильный Величайший общий знаменатель.GCD в сборке MIPS

Однако, если сначала вводится меньшее число, тогда меньшее число возвращается как GCD.

Я пытался понять это в течение нескольких часов безрезультатно. Пожалуйста, помогите!

ответ

1

Ну, вы можете легко поменять регистры $a0 и $a1, если второй элемент ввода больше первого. E-mail:

move $a1, $v0  # store input in $a1 -> this is your code  
# Here goes the test & swap code, just before your original base label 

bge $a0, $a1, noswap 
move $a1, $a0 # Swap $a0 and $a1 
move $a0, $v0 # if the second item is greater than the first one 
noswap: 

# Here continues your code 
base: 
+0

OMG Спасибо, много, вы гений! – JustHuman

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

  • Нет связанных вопросов^_^