### A good answer might be:

    [0x00400000]    0x34080fa5      ori  $8, $0, 4005     ori  $8,$0,0x0FA5

Yes. How could you miss? The last 16 bits are the immediate operand.

# ORI Machine Code

Below is the machine code for the instruction. In the third line the bits have been grouped according to their functional meaning. Documentation for the MIPS shows this grouping for each instruction. It is not something you can determine by inspection.

Look this over to get an idea of how it works. The right six bits of the instruction are the opcode, the bit pattern that specifies the machine operation. The next group of five bits specifies the operand register. The group of five after that specifies the destination register. The remaining bits are the immediate operand.

       3    4    0    8    0    f    a    5    -- machine instruction in hex

    0011 0100 0000 1000 0000 1111 1010 0101    -- machine instruction in bits

    001101  00000 01000 0000 1111 1010 0101    -- fields of the instruction

    ori     $0     $8     0    f    a    5
    opcode  oper-  dest  immediate operand     -- meaning of the fields
            and    reg.
            reg.

    ori     $8,  $0,  0x0fa5                  -- assembly language instruction
                                                 (Notice that the register numbers
                                                  are not in the same order as they
                                                  are in the machine instruction).

### QUESTION 8:

Here is the `ori` instruction again, but the patterns that specify the operand register, the destination register, and the immediate operand are blank. Fill in the blanks so the operand register is $10, the destination register is $9, and the immediate operand is 0xAFF0

    001101 _ _ _ _ _   _ _ _ _ _  _ _ _ _  _ _ _ _  _ _ _ _  _ _ _ _

    ori     $10          $9         a         f        f        0

         operand        dest           immediate operand
         reg.           reg.