Difference between revisions of "IOP16 Assembler"
Jump to navigation
Jump to search
Blwikiadmin (talk | contribs) |
Blwikiadmin (talk | contribs) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 12: | Line 12: | ||
* Useful for people who don't have Python 3 installed | * Useful for people who don't have Python 3 installed | ||
− | === | + | === Compile Windows executable === |
+ | |||
+ | * Compile to make executable using command in DOS window | ||
− | |||
<pre> | <pre> | ||
pyinstaller --onefile pyAssemble_cpu_001.py | pyinstaller --onefile pyAssemble_cpu_001.py | ||
Line 60: | Line 61: | ||
== Error Messages == | == Error Messages == | ||
− | * Error messages are pretty rudimentary | + | * Error messages are pretty rudimentary |
− | * Dialog box notes that error messages are printed to the command window | + | * Dialog box notes that error messages are printed to the command window |
− | * The line with the error is printed as a list of the line | + | * The line with the error is printed as a list of the line |
− | * Missing labels are presented as a message | + | * Missing labels are presented as a message |
− | * Only one error at a time is presented | + | * Only one error at a time is presented |
+ | * Set variable in source code to enable debugging messages | ||
+ | <pre> | ||
+ | verbose = True | ||
+ | </pre> | ||
== Assembler opcodes == | == Assembler opcodes == |
Latest revision as of 20:08, 16 April 2022
Contents
IOP16 Assembler
- The CPU has an Assembler
- The Assembler is written in Python 3
- There's also a Windows executable if you don't have Python 3 installed on your computer
Assembler - Windows executable
- Windows executable is in this folder
- Useful for people who don't have Python 3 installed
Compile Windows executable
- Compile to make executable using command in DOS window
pyinstaller --onefile pyAssemble_cpu_001.py
Files
Input fileName.csv
- Input file is tightly constrained in CSV file
- Input File Header has to be
['LABEL', 'OPCODE', 'REG_LABEL', 'OFFSET_ADDR', 'COMMENT','V3.0.0']
Memory Map File
- Optional File named: fileName_MMAP.csv
- Memory map file Header has to be
['IO_ADDR','DIR','MNEUMONIC']
- IO_ADDR = 0XNN
- DIR = R, W, or RW
- Ex: ['0X00','R','LED_RD']
Constants file
- Useful for storing arrays of constants
- Ex: print strings
- Optional File named: fileName_CONST.csv
- Constants file Header has to be -
['LABEL','STRING']
Output files
- inFileName_ROM.mif file - Quartus II ROM Memory Initialization File
- inFileName.lst file - Listing file (with addresses)
- constFileName_const.mif - Quartus II Constants Memory Initialization File
Error Messages
- Error messages are pretty rudimentary
- Dialog box notes that error messages are printed to the command window
- The line with the error is printed as a list of the line
- Missing labels are presented as a message
- Only one error at a time is presented
- Set variable in source code to enable debugging messages
verbose = True
Assembler opcodes
Assembler Psuedo-opcodes
- NOP - No operation
- HLT - Halt (Jump to self)
- BEQ - Branch if equal (same as BEZ)
- BNE - Branch if not equal (Aame as BNZ)
Documentation
- YouTube Video Series.
- Documentation slides are here (LibreOffice Impress Open document format).