MIPS汇编中的GCD

时间:2013-04-23 20:51:27

标签: assembly mips mips32 mips64

我无法正确使用此代码100%正常工作。如果用户输入一个较大的数字作为第一个数字,那么程序会给出正确的最大公分母。

但是,如果首先输入较小的数字,则较小的数字将作为GCD返回。

我一直试图弄清楚这几个小时无济于事。请有人帮忙!!

1 个答案:

答案 0 :(得分:1)

如果第二个输入项大于第一个输入项,则可以轻松交换寄存器$a0$a1。 E.g:

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: