Fibonacci Computer & りlang : Ruby

Code
ASM Code

Controls
Memories
Ref
About the りlang
(add 1 3 (sub 3 4 (mul 2 6) (div 9 3))) # calculate
(let x 2)(let y (add 1 3)) # assign variable
(def (f arg1 arg2) (mul arg1 arg2))
(def (f arg) (proc (mul arg 3) (mul arg 2)))
# define functions, note that the last expression is the return value.
(proc (exp) (exp) (exp)) # a list of processing expression
(if (condition) (true_bench) (false_bench)) # condition test
(f arg1 arg2) # function calls
About the Assemble Code.
MOV [source], [destination] # mov source to destination
LEA [source], [destination] # load the effect value stored in source address to destination

ADD [source], [destination] # add source to destination
SUB [source], [destination] # sub destination by source
MUL [source], [destination] # multiply destination with source
DIV [source], [destination] # divide destination by source, note that if you divide by zero, the result would be zero.

INC [destination] # increase by one
DEC [destination] # decrease by one

CMP [a], [b] # b - a -> FLAG
J [tag] # jl if FLAG < 0, je if =

PUSH [value] # push value to stack
POP [register] # pop value in stack to register

HALT # stop the computer
NOP # do nothing
About
Original This project was originally from my computer class, which is called Fibonacci Computer. However, in the class, the teacher only told us that we, human should perform the assemble-like code, which I thought was terrible.
Therefore, I made this toy machine to help me with those codes. And because the original one does not support many features a real computer would have, so I made a few changes on it.
If you want to use the original version, please see my old one.
And I'm working on a compiler for it.

The Story behind the りlang The りlang is a toy computer programming language, which uses the S-expression to cut down the parser work. It's name cames from the first syllable of my nickname "凉凉" in Hiragana.
(p.s. my real name also starts with this syllable. )
The most hard thing most be the design of its compiler, which took me a week or so to do so.

It is imperfect. This would be the version 0.0. Still, there is some error hiding somewhere else. Hopefully, I will find them out and make it done.
Author: 凉凉