No. Because the 16-bit pattern is zero-extended to 32 bits, the resulting pattern is never a two's-complement negative integer.
Here is a description of the ori
instruction used
as a bitwise OR instruction:
ori d,s,const # register d <-- bitwise OR ofconst
# with the contents of register $s #const
is 16-bits, so # 0x0000 ...const
... 0xFFFF
The three operands of the instruction must appear in the correct order,
and const
must be within the specified range.
If the immediate operand in a source instruction is less than sixteen bits
(such as 0x2) the assembler expands it to sixteen.
If it is more than sixteen bits the assembler writes an error message.
The const
part of the assembly language instruction
can be a positive decimal or a hexadecimal constant.
The assembler translates the constant into a 16-bit pattern in
the machine instruction.
For example, the following two assembly language instructions
translate into the same machine language instruction:
ori $5,$4,0x10 ori $5,$4,16