Abstract-VM is the virtual machine that can interpret programs written in a basic assembly language.
That programme is just do the arithmetic and some compare operations with two first values on the stack. Seems like a UNIX command dc.
Very simple assembler language that a virtual machine understands. Otherwise, the programme will throw an exception.
Instruction | Details |
---|---|
push value | Pushes the value at the top of the stack. The value must have one of the following form:
|
pop | Unstacks the value from the top of the stack. |
dump | Displays each value of the stack, from the most recent one to the oldest one. |
assert value | Asserts that the value at the top of the stack is equal to the one passed as parameter for this instruction. |
more value | Asserts that the value at the top of the stack is less to the one passed as parameter for this instruction. |
less value | Asserts that the value at the top of the stack is more to the one passed as parameter for this instruction. |
add | Unstacks the first two values on the stack, adds them together and stacks the result. |
sub | Unstacks the first two values on the stack, subtracts them, then stacks the result. |
mul | Unstacks the first two values on the stack, multiplies them, then stacks the result. |
div | Unstacks the first two values on the stack, divides them, then stacks the result. |
mod | Unstacks the first two values on the stack, calculates the modulus, then stacks the result. |
Asserts that the value at the top of the stack is an 8-bit integer. (If not, exception will be thrown), then interprets it as an ASCII value and displays the corresponding character on the standard output. | |
max | Prints the maximum value on the stack. |
min | Prints the minimum value on the stack. |
debug | Prints the information about how many and which types on the stack. |
exit | Terminate the execution of the current program. |
Some additional comments | Comments start with a ’;’ and finish with a newline. |