Name: Box: Date:

## HW9

1. You are writing a MIPS assembly program. Your program has a beq instructions at line 0x0100 0400. You wish this beq to branch to location 0x0200 0000.

1. (3 points) How close can the beq get to the goal address? Express your answer as the address nearest to the target address as possible.
1. (3 points) What is a possible method to allow long-range conditional branches?
2. You are writing a program for a processor with 8-bit instructions. The branch instructions for this processor only allow 3-bit branch immediate.

1. (3 points) Assuming the immediate is sign extended, what is the branch range of the processor?
1. (3 points) What is the problem with such a branch range?
1. Compute the correct hex value for the branch targets below.

0x00400028
      j test
0x08QQQQQQ
0x0040002c
loop: lw   $t1, 0($11)
0x8d690000
0x00400030
      addi $t3,$t3, -4
0x216bfffc
0x00400034
test: bne  $t1,$0, loop
0x1520RRRR
1. (3 points) What is the hex value for QQQQQQ that represents the jump target? Show your work.
1. (3 points) What is the hex value for RRRR that represents the branch not equal target? Show your work.