Bubonic Assember
In order to simplify conversion of assembly language to bits, we decided to implement an assembler. It is written in Java.
Output
- HTML summary file
- Link to input .asm file
- Link to output .mem file
- Memory address of each instruction
- Instruction field values in decimal
- Hexadecimal value of each instruction
- Xilinx RAM LogiBLOX memfile
- Only requires renaming to be dropped directly into project
- Places instructions into memory beginning with address 0x0000
- Uses hexadecimal notation for instruction data
- Appends an infinite loop instruction to the end of each program, to effectively pause the processor
- beq $zero, $zero, -1
- Hexadecimal value 0x203F
What it Can Do
- Convert Bubonic Assembly Language to binary form
- Process labels and convert them to the represented address
- Allows both numerical values and labels for all immediates
- Supports both decimal or hexadecimal forms for all numbers (immediate values, addresses, register numbers)
- Both numerical register addressing ($5) and named registers ($sp)
- Catch and report improperly formatted instructions
What it Cannot Do
- Rewrite pseudoinstructions, such as larger-than-allowed immediate values. In these cases, a warning and a suggested change are given.
It is easiest to see the features of our assembler by viewing examples, which can be found on the benchmarks page.