### A good answer might be:

The trap handler service first converts the integer in `$a0` from 32-bit two's complement representation into ascii characters.

# Example Program

The following example program reads in an integer, presumed to be a number of ounces, then writes out the equivalent number of pounds and ounces.

    # ounces.asm
    #
    # Convert ounces to pounds and ounces.

            .text
            .globl  main

    main:   li      $v0,4       # print prompt
            la      $a0,prompt  #
            syscall
            li      $v0,5       # read in ounces
            syscall

            li      $t1,16      # 16 oz. per pound
            divu    $v0,$t1     # lo = pound; hi = oz.

            mflo    $a0
            li      $v0,1       # print
            syscall             # pounds
            li      $v0,4       # print "pounds"
            la      $a0,pout
            syscall

            mfhi    $a0         # print
            li      $v0,1       # ounces
            syscall             #
            li      $v0,4       # print
            la      $a0,ozout   # "ounces"
            syscall

            li      $v0,10      # exit
            syscall

            .data
    prompt: .asciiz "Enter ounces: "
    pout:   .asciiz " Pounds\n"
    ozout:  .asciiz " Ounces\n"
    # end of file

As is often the case, input and output dominate the program. The actual calculation is hard to find.

### QUESTION 9:

The program prints "Pounds" and "Ounces" on separate lines. Change the program so that they are printed on one line.