我试图编写一个 MIPS 程序,它获取一个无符号整数作为参数,并递归地返回整数中所有十进制数字的总和。例如,如果参数为 75080,则返回的总和为 20 (7+5+0+8+0)。到目前为止,这是我的代码。任何帮助,将不胜感激。
我的想法是将数字除以 10,留下数字中的最后一个整数,使用 mfhi 添加提醒。
.data
prompt: .asciiz "Enter a string of integer: "
output: .asciiz "\nThe total sum is: "
.text
.globl main
main:
la $a0, prompt
li $v0, 4
syscall
li $v0, 5
syscall
move $t2, $v0
la $a0, output
li $v0, 4
syscall
Loop:
div $t2, $t2, 10
mflo, $t1
mfhi, $t3
beqz $t1, Exit
add $t1, $t1, 0
b additive
additive:
add $t0, $t1, $t1
j Loop
Exit:
la $a0, output
li $v0, 4
syscall
la $v0, 10
syscall