1 2 3 4 5
Universal Assembler/Deassembler*

Traditionally in CS152, making small changes to the assembler mipsasm was difficult. When a user realized that branch should increment by a different amount, or change or add instruction, the administrator of mipsasm had to first understand how mipsasm worked, hack, then compile it. Also, most assemblers (mipsasm included) were tailored for just one machine architecture, and making any small change entailed great hacking one way or the other.

Kove relieves this burden by reading a "universal table" that can translate a table into another source code, which then is used to assemble or disassemble* codes. In anther word, similar to FLEX, Kova reads a table, generates a code, then executes that code to parse correctly. Now a user can now simply enter a table for MIPS, byte-code, x86 (though this would take forever), or any assembly format without rewriting the assembler.

Below is snapshot of an actual working "universal table" for MIPS encoding.

In this snapshot, two main instruction encoding attributes are set for the assembler. The string token must be specified for the parser. Afterwards, a table following the string token conventions are specified.
  1 2 3 4 5