### A good answer might be:

- What bit pattern is contained in register $0 ?
  - All zero bits
- How many bits are there per MIPS instruction?
  - 32 bits

# Zero Extension

Here is the instruction we are looking at:

    address         machine code      assembly code
    ——————————      ——————————        ————————————
    0x00400000      0x34080002        ori $8,$0,0x2
                          ----

Sixteen bits of immediate operand,

    0000 0000 0000 0010

are to be bitwise ORed with the thirty-two bits of register zero,

    0000 0000 0000 0000 0000 0000 0000 0000

This would not ordinarily be possible. However, MIPS zero extends the sixteen-bit operand so the operands are the same length. Sometimes this is called padding with zeros on the left.

       zero extension
    ---- ---- ---- ----
    0000 0000 0000 0000 0000 0000 0000 0010   -- zero extended immediate operand
    0000 0000 0000 0000 0000 0000 0000 0000   -- data in register $0
    ---------------------------------------
    0000 0000 0000 0000 0000 0000 0000 0010   -- result, put in register $8

An OR operation is done in each column. The 32-bit result is placed in register $8.

### QUESTION 3:

After the instruction `ori $8,$0,0x2` executes, what is in $8?