### A good answer might be:

              .text
    main:
              . . . .

              lw    $t0,sub1add             # get first address in Jump Table

              jalr  $t0                     # pass control to sub1

              . . . .

              .data
    sub1add:  .word sub1                    # Jump Table
    sub2add:  .word sub2

# Full, Impractical, Program

Confusion Alert: Notice that the instruction that is used to load $t0 with the entry point to `sub1` is a `lw sub1add` instruction. We want $t0 to get the contents of `sub1add`, which is what a `lw` instruction does.

Here is a full program that includes a `main` that calls the two subroutines. This is a highly contrived example created to show a jump table and a `jalr` instruction. It is not a sensible way to write a "Hello World" program.

              .globl   main
              .text
    main:
              subu     $sp,$sp,4          # push return address
              sw       $ra,($sp)

              lw       $t0,sub1add        # get first address
              jalr     $t0                # pass control

              lw       $t0,sub2add        # get second address
              jalr     $t0                # pass control

              lw       $ra,($sp)          # pop return address
              addu     $sp,$sp,4
              jr       $ra

              .data
    sub1add:  .word sub1                    # Jump Table
    sub2add:  .word sub2

              .text
    sub1:     li       $v0,4
              la       $a0,messH
              syscall
              jr       $ra
              .data
    messH:    .asciiz  "Hello "

              .text
    sub2:     li       $v0,4
              la       $a0,messW
              syscall
              jr       $ra
              .data
    messW:    .asciiz  "World\n"

### QUESTION 6:

How many bytes are in each entry in the Jump Table?