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.

    Address Instruction Hex representation
    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.