A good answer might be:

0.01 + 0.1 + 1.0 = 1.11, you would hope.

Complete Program

Again, the SPIM simulator outputs too many digits. But recall, 0.1 can't be represented exactly, so that may be part of the problem.

Here is the complete program, suitable for you to copy into a text editor and to play with:

## float1.asm -- compute ax^2 + bx + c for user-input x 

        .text
        .globl main

main:   # read input
        la      $a0,prompt          # prompt user for x
        li      $v0,4               # print string
        syscall
        
        li      $v0,6               # read single
        syscall                     # $f0 <-- x
        
        # evaluate the quadratic
        l.s     $f2,a               # sum = a
        mul.s   $f2,$f2,$f0         # sum = ax
        l.s     $f4,bb              # get b
        add.s   $f2,$f2,$f4         # sum = ax + b
        mul.s   $f2,$f2,$f0         # sum = (ax+b)x = ax^2 +bx
        l.s     $f4,c               # get c
        add.s   $f2,$f2,$f4         # sum = ax^2 + bx + c
        
        # print the result
        mov.s   $f12,$f2            # $f12 = argument
        li      $v0,2               # print single
        syscall

        la      $a0,newl            # new line
        li      $v0,4               # print string
        syscall
                
        jr      $ra                 # return to OS
        
##
##  Data Segment  
##
        .data
a:      .float  1.0
bb:     .float  1.0
c:      .float  1.0

prompt: .asciiz "Enter x: "
blank:  .asciiz " "
newl:   .asciiz "\n"

## end of file 

QUESTION 21:

Had enough?