Name: Box: Date:


  1. (6 points) Convert the following C code to MIPS assembly instructions. Use the minimum number of instructions necessary. Assume that variables f, g and h are 32- bit integers stored in registers $t0, $t1 and $t2 respectively and that the base address of arrays A and B are in registers $s3 and $s4 respectively. A and B are arrays of 4-byte integers (this is important). If you need to store temporary values, use one of the other t registers.
    a. f = 1; A[f] = 0;

    b. B[1] = A[f-5];

  2. (4 points) Show the hexadecimal representation of the following MIPS instructions. Show your work.
    a. addi $s0, $s0, 4

    b. lw $s1, 8($t0)

  3. (5 points) Consider changing the MIPS instruction set to support 64 registers instead of 32. Assuming changes are made only to the register fields, draw the new R-type instruction format. Be sure to label each field and include its size.

  4. (5 points) How many total instructions does MIPS support if opcode 000000 is the only opcode used for R-types? Remember that R-types also use a function code.