我是MIPS和这个网站的新手(这是我的第一篇文章)所以请在这里忍受我...我必须取一个用户输入的数字,用整数(HI / LO)和整数反转整数将剩余部分放入新的登记册中,以便将得到的反转数字与原始数字进行比较,看它是否是回文 . 那很好,得到了那个除法部分(我想?),但是一旦我将第二次除法并尝试将第二个余数加到第一个除法的余数上,它将简单地覆盖寄存器的内容,而不是在结束了吧?我无法在互联网上找到答案 . 我怎么能做到这一点?因为简单地做'移动'会覆盖内容,对吗?到目前为止,这是我的代码
li $v0, 4 # System call code for print string
la $a0, Prompt # Load address for Prompt into a0
syscall
li $v0, 5 # System call code for read integer
syscall # Read the integer into v0
move $t0, $v0 # Move the value into t0
move $t9, $t0
li $s0, 10 # Load 10 into s0 for division
li $s1, 0 # Load 0 into s1 for division
div $t0, $s0 # Divides t0 by 10
mfhi $t1 # Move remainder into t1
mflo $t0 # Move quotient into t0
本质上,我想将剩余部分连接在一起,而不是将它们连接在一起或覆盖寄存器 . 假设第一个余数是3,第二个是6,第三个是9.最后,我不希望它是18或9.我希望它是369 .
1 回答
你的
div
/mfhi
/mflo
很好 . 你需要的是一个有第二个变量的循环 .我创建了等效的C代码并将其添加为注释块并创建了一个工作程序[请原谅无偿样式清理]: