PUSH register |
Pushes register onto the stack |
POP register |
Pops the top value off the stack and into register |
MOV register1 value/register2 |
Copies the value of value/register2 into register1 |
INC register |
Increments the value in register |
DEC register |
Decrements the value in register |
ADD register1 value/register2 |
Adds value/register2 to register |
SUB register1 value/register2 |
Subtracts value/register2 from register |
MUL register1 value/register2 |
Multiplies register1 by value/register2 |
DIV register1 value/register2 |
Divides register1 by value/register2 |
XOR register1 value/register2 |
Performs an XOR on register1 with value/register2 |
CMP register1 value/register2 |
Compares value/register2 to register and sets equal_flag, lesser_flag & greater_flag accordingly |
JMP label |
Calls a builtin or user defined function |
JE label |
Calls label only if equal_flag is true |
JNE label |
Calls label only if equal_flag is false |
JZ label |
Calls label only if zero_flag is true |
JNZ label |
Calls label only if zero_flag is false |
JG, JGE, JL, JLE label |
Jump greater, Jump greater than or equal, Jump less than, Jump less than or equal |
SETG, SETGE, SETL, SETLE register |
Sets register to a boolean based on the lesser, greater and equal flags |
LOOP label |
Calls label until L0 is 0, decrementing it each loop |
LOOPNODEC label |
Calls label L0 times without decrementing it, much faster than LOOP |