### A good answer might be:

            .text
            .globl  main
    main:
            # input the string

            # push each character onto the stack

            # pop chars from stack back into the buffer

            # print the reversed string

            .data
    str:    .space  128     # character buffer

# First Section

Here is the first secion of the program filled in. It merely reads in a line from the terminal in the usual way. To shortent the program, there is no user prompt.

    # Reverse and output a user-supplied string
    #
    # Settings: Load delays OFF; Branch delays OFF,
    #           Trap file    ON; Pseudoinstructions ON
    #
    # $t0 --- character pushed or popped
    # $t1 --- index into string buffer str

            .text
            .globl  main

    main:   #input the string
            li      $v0,8          # service code
            la      $a0,str        # address of buffer
            li      $a1,128        # buffer length
            syscall
                                   # initialize the stack:
            li      $t0,_____      # push a null

            ____    $sp,$sp,4      # onto the stack

            sw      $t0,(___)      # to signal its bottom
            li      $t1,0          # index of first char in str buffer

            # push each character onto the stack

            # pop chars from stack back into the buffer

            # print the reversed string

            .data
    str:    .space  128            # character buffer

Next the stack is initialized. Null is pushed onto the stack. Later on the stack will be popped until this null is encountered.

### QUESTION 12:

Fill in the blanks of the program.