'How to multiply to integers in mips using addition

I'm trying to multiply two positive integers together then convert them into a float value and output that value. I don't understand what I'm doing wrong because I use $s3 as an int i and increment each time the program branches to multi_add. I truly don't know what I'm doing wrong and it's very frustrating. I'm was trying to think of it as a while loop that say as long as b>i is true where i is 0 and b is the multiplier. Then do c = c + a and i++. Once i is greater than b or the multipier it exit the loop and prints the value.

 .data
    prompta: .asciiz "input A"
    promptb: .asciiz "input B" 
    prompt: .asciiz "f = "
    newline: .asciiz "\n"
.text

main: 

addi $t3, $t3, 0 #i

#Print the prompt1
li $v0, 4
la $a0, prompta
syscall

#newline
li $v0, 4
la $a0, newline
syscall

#enter int A
li $v0, 5
syscall
move $t1, $v0

#Print the prompt2
li $v0, 4
la $a0, promptb
syscall

#newline
li $v0, 4
la $a0, newline
syscall

#enter int B
li $v0, 5
syscall
move $t2, $v0

multiply: bgt $t2, $t3, multi_add #if B>i jump
      j result
      
multi_add: add $t1, $t1, $ #c = c+a
       addi $s3, $s3, 1 #i = i+1
       jal multiply   

result: 
    li $v0, 4
    la $a0, prompt
    syscall 
    
    mfc1 $t1, $f1
    cvt.s.w $f1, $f1
    li $v0, 2
    add.s $f12, $f12, $f1
    syscall


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source