01 Feb 2019

DLX assembler online interpreter

DLX is a MIPS-based microprocessor architecture that is widely used didactically to teach how a RISC pipeline architecture works. DLX has a set of instructions that allow you to manipulate 32 memory registers. This set of instructions is the assembly language of the architecture.

While I was studying Advanced Computer Architectures at university, we studied the DLX, but a great obstacle in learning was studying a programming language and not having a quick way to verify that the results of my program were correct. So, searching the web I found a DLX compiler and emulator called EBEL-DLX (the original source disappeared, but I was able to rescue it in this repository), which worked very well.

I decided to create a web version of EBEL-DLX. For this, what I did was modify its source code to print strings in JSON format through stdout. Next, I created an API in Python (using Flask) that would use the binary to run compilations and simulations of programs sent through an HTTP request. Finally, I implemented a web app in Vue to consume this API and allow users to interact with EBEL-DLX through the API.

The resulting app is not yet online, but you can find the API source here. At the moment, the app does not simulate the DLX pipeline, and serves only as a checker for your DLX programs.