When using hexadecimal form of an immediate value with a MSB bit of 1 for immediate instructions, an error is thrown, even though both immediate values are 12-bits as the instruction specifies.
For example when attempting to assemble with an instruction such as: andi t0, a0, 0xF00
The error message is:
"0xF00": operand is out of range
However attempting to assemble this instruction andi t0, a0, -256 instead, is successful.

I'm not sure if this issue is being worked on yet. I could try to work on this issue if no one else is working on this.