### A good answer might be:

             .text
             .globl  main

    main:
             jal     pread            # read first integer
             nop                      #
             move    $s0,$v0          # save it in $s0
             jal     pread            # read second integer
             nop                      #
             move    $s1,$v0          # save it in $s1
             jal     pread            # read third integer
             nop                      #
             move    $s2,$v0          # save it in $s2

             addu    $s0,$s0,$s1      # compute the sum
             addu    $a0,$s0,$s2

             li      $v0,1            # print the sum
             syscall

             li      $v0,10           # exit
             syscall

# Global Symbols

Recall that modules (for us, subroutines) should not know about each other's symbolic addresses. It would violate the idea of modularity for `main` to do something to `pread`'s `prompt`, for example.

But some symbolic addresses need to be used between modules. For example, `pread` is a symbolic address, and `main` must know about it and use it in the `jal` instruction.

A symbol that a subroutine makes visible to other subroutines is a global symbol. Global symbols often label entry points. Symbols that are not global are called local symbols. In MIPS assembly and in SPIM a symbol is made global by placing it in a list of symbols following the `.globl` directive:

             .globl  main

### QUESTION 14:

What global symbols are in the subroutine `pread`?