### A good answer might be:

    li $v0,12 == ori $v0,zero,12

# Several Translations

The load immediate pseudoinstruction is useful for loading a register with an integer value. Here is another example:

    li  $t2,-153

This puts the two's complement representation of -15610 into register `$t2.` However, this can not be done with `ori` because the immediate field of that instruction must be a 16-bit unsigned integer (which is zero-extended to 32 bits upon execution). Because the immediate value of the `li` is negative, a different translation is used:

    li $v2,-153   ==   addiu $v2,$0,-153

(Remember that `addiu` performs two's complement addition with its operands. The `u` means that overflow does not cause a trap). The extended assembler translates `li` into different basic instructions depending on the sign of the immediate value.

### QUESTION 9:

Can either basic instruction `, ori` or `addiu,` use an immediate value greater than 16 bits?