Pre-task for language team
main.c
is a partial implementation of a small VM capable of performing simple arithmetic. To finsih the implementation, fill out the blanks labeled with TODO
. We have given a correct implementation of ADD
as an example for you, and a few macros for interacting with the VM you may find useful (PUSH
and POP
). More complete instructions can be found in the file.
some example programs:
Either DCONST, 0x3F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, PRINT, HALT
or DCONST, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x3F, PRINT, HALT
should print 1.0
. Which one will work on your machine depends on your implementation of DCONST
and/or the endianness of your machine.
DCONST_2, ST1, DCONST_M1, LD1, DIV, PRINT, HALT
should print -0.5
.
If you feel like this was too easy, feel free to add any capabilities you want to the VM.