A partial screenshot, just to prove that one can write an assembler in Microsoft Excel.
The assembler supports labels for the branch and jump instructions and quite extensive error checking, including highlighting of:
There's even an ActiveX control that writes the output data to a file as raw bytes, plus optionally converts the raw bytes into an Intel HEX format file via a free 3rd party bin2hex utility.
The next evolution for my CPU will be the introduction of extra "addressing modes" for certain OpCodes. So far I can only load the accumulator with actual values ("immediate") or get from a specified memory location. There is no indirection or offsetting available. There's also currently only a single register, the accumulator.
It will be interesting to see how easy to is to implement these extensions in the assembler. The VHDL won't be a problem!
The assembler supports labels for the branch and jump instructions and quite extensive error checking, including highlighting of:
- Unknown OpCode
- Missing data
- Unexpected data
- Duplicate labels
- Memory overrun
There's even an ActiveX control that writes the output data to a file as raw bytes, plus optionally converts the raw bytes into an Intel HEX format file via a free 3rd party bin2hex utility.
The next evolution for my CPU will be the introduction of extra "addressing modes" for certain OpCodes. So far I can only load the accumulator with actual values ("immediate") or get from a specified memory location. There is no indirection or offsetting available. There's also currently only a single register, the accumulator.
It will be interesting to see how easy to is to implement these extensions in the assembler. The VHDL won't be a problem!