Enum OpCode
Represents the bytecode operation codes (opcodes) for the virtual machine.
Namespace: VM.Core.Instructions
Assembly: VM.dll
Syntax
public enum OpCode : byte
Remarks
Each opcode corresponds to a specific operation in the VM's instruction set. The numeric values are used in the bytecode representation of programs.
Fields
| Name | Description |
|---|---|
| ADD | Adds the top two values |
| AND | Performs logical AND on top two values |
| CALL | Calls a function at specified address |
| CAST | Casts value to different type |
| CMP | Compares top two values (-1, 0, or 1 result) |
| CONCAT | Concatenates two strings |
| DIV | Divides the second value by the top value |
| DUP | Duplicates the top stack value |
| EQ | Checks if top two values are equal |
| FSAPPEND | Appends content to file |
| FSDELETE | Deletes a file |
| FSEXISTS | Checks if file exists |
| FSREAD | Reads content from file |
| FSWRITE | Writes content to file |
| GETINDEX | Gets element at index from array |
| GLOAD | Loads a value from a global variable |
| GSTORE | Stores a value in a global variable |
| HALT | Stops program execution |
| INPUT | Reads input from console |
| ISNUM | Checks if value is numeric |
| ISSTR | Checks if value is a string |
| JMP | Unconditional jump |
| JNZ | Jumps if top value is not zero |
| JZ | Jumps if top value is zero |
| LOAD | Loads a value from a local variable |
| MOD | Computes modulus of the second value by the top value |
| MUL | Multiplies the top two values |
| NEG | Negates the top value |
| NEQ | Checks if top two values are not equal |
| NEWARRAY | Creates a new array |
| NOT | Performs logical NOT on top value |
| OR | Performs logical OR on top two values |
| OVER | Copies the second stack value to the top |
| POP | Removes the top value from the stack |
Prints the top stack value |
|
| PUSH | Pushes a value onto the stack |
| PUSHS | Pushes a string constant onto the stack |
| RET | Returns from a function call |
| SETINDEX | Sets element at index in array |
| STORE | Stores a value in a local variable |
| STRCHR | Gets character at index from string |
| STRLEN | Gets length of a string |
| STRORD | Gets ASCII code of character |
| STRVAL | Converts value to string |
| SUB | Subtracts the top value from the second value |
| SUBSTR | Extracts substring from string |
| SWAP | Swaps the top two stack values |
| TYPE | Gets type name of value |