符号なし整数を引数として取得し、整数内のすべての 10 進数の合計を再帰的に返す 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