Extended assembler to allow fabricated instructions

I've tried to add fabricated instructions such as "halt", "ret", "nop" and instructions with implicit operands such as "call" and "ld". I had to add quite a few more encoding into the assembler to cover these, so I also tried to make the assembler more extendable in that regard.

Let me know your thoughts on this. 
Oh, I'm sure that's fine. I just shy away from last because it's O(n) to compute it, but I'm sure that won't be a factor. The largest the list could be is the number of instructions.