Should I redesign the instruction set, simplify them?
Make 5 bits for instructions, 4 bits for A and B (and have error/assembler warnings for attempting to set B to a read-only), and 3 bits for jump.
It would be less confusing than the Pos/Neg and Signed/Unsigned modifier bits, especially when dealing with logic instructions like BSL which don't care if the value is signed or unsigned. It would eliminate my grouping but that isn't much of a loss.
I could probably make the changes to the Assembler in an hour or less, and to the CPU code probably around one to two hours.
It would give me an additional 3 general purpose registers I could play with
- Pro
- Less confusing bitmask/interpretation
- Possibly more instructions available (though I have no idea what I'd add to the set)
- More GP Registers to use
- Con
- Undos a lot of work
- Has to coordinate the change between the CPU and the assember
- Adds a bunch more documentation (as there are now signed versions of every instruction to name/use)
- Either have to put jump next to instruction or have A and B cross nibble boundaries
Should I redesign the instruction set, simplify them?
Make 5 bits for instructions, 4 bits for A and B (and have error/assembler warnings for attempting to set B to a read-only), and 3 bits for jump.
It would be less confusing than the Pos/Neg and Signed/Unsigned modifier bits, especially when dealing with logic instructions like BSL which don't care if the value is signed or unsigned. It would eliminate my grouping but that isn't much of a loss.
I could probably make the changes to the Assembler in an hour or less, and to the CPU code probably around one to two hours.
It would give me an additional 3 general purpose registers I could play with