Beruflich Dokumente
Kultur Dokumente
Definitions :-
VM : Virtual Machine
Stack : VM Stack
IR : Instruction Register
PC : Program Counter
VP : Variable Pointer
Stack[nSize] : Last Item in the Stack (Last In - First Out)
VV : Variable Value (We have a Pointer to a variable, And we access this variable value)
(Stack and Variables)
Operation Description
Add string from the IR to the stack
ICO_PUSHC
(Jump)
Operation Description
Set PC to new value from the IR
ICO_JUMP
(Compare)
Operation Description
If stack[nSize-1] <= stack[nSize] , POP stack[nSize], set
ICO_LESSEQUAL
Stack[nSize-1] = 1 else set Stack[nSize-1] = 0
If stack[nSize-1] = stack[nSize] , POP stack[nSize], set
ICO_EQUAL
Stack[nSize-1] = 1 else set Stack[nSize-1] = 0
If stack[nSize-1] < stack[nSize] , POP stack[nSize], set
ICO_LESS
Stack[nSize-1] = 1 else set Stack[nSize-1] = 0
If stack[nSize-1] > stack[nSize] , POP stack[nSize], set
ICO_GREATER
Stack[nSize-1] = 1 else set Stack[nSize-1] = 0
If stack[nSize-1] >= stack[nSize] , POP stack[nSize], set
ICO_GREATEREQUAL
Stack[nSize-1] = 1 else set Stack[nSize-1] = 0
If stack[nSize-1] != stack[nSize] , POP stack[nSize], set
ICO_NOTEQUAL
Stack[nSize-1] = 1 else set Stack[nSize-1] = 0
(Math)
Operation Description
Stack[nSize-1] = Stack[nSize-1] + Stack[nSize] , POP
ICO_SUM
stack[nSize]
Stack[nSize-1] = Stack[nSize-1] - Stack[nSize] , POP
ICO_SUB
stack[nSize]
Stack[nSize-1] = Stack[nSize-1] * Stack[nSize] , POP
ICO_MUL
stack[nSize]
Stack[nSize-1] = Stack[nSize-1] / Stack[nSize] , POP
ICO_DIV
stack[nSize]
Stack[nSize-1] = Stack[nSize-1] % Stack[nSize] , POP
ICO_MOD
stack[nSize]
Stack[nSize] = - Stack[nSize-1]
ICO_NEG
Stack[nSize] = Stack[nSize] + 1
ICO_PLUSPLUS
Stack[nSize] = Stack[nSize] - 1
ICO_MINUSMINUS
(Logic)
Operation Description
Stack[nSize-1] = Stack[nSize-1] && Stack[nSize] ,
ICO_AND
POP stack[nSize]
Stack[nSize-1] = Stack[nSize-1] || Stack[nSize] , POP
ICO_OR
stack[nSize]
Stack[nSize] = ! Stack[nSize]
ICO_NOT
(Lists)
Operation Description
Start New List in Temp. Memory
ICO_LISTSTART
End List
ICO_LISTEND
(Functions)
Operation Description
Find function
ICO_LOADFUNC
Call function
ICO_CALL
Anonymous function
ICO_ANONYMOUS
(User Interface)
Operation Description
Print value to the standard output
ICO_PRINT
(End Program/Loop)
Operation Description
End execution of VM
ICO_BYE
(Try-Catch-Done)
Operation Description
Start try region
ICO_TRY
(OOP)
Operation Description
Create new object, get class name from the IR, push ob-
ICO_NEWOBJ
ject pointer to the stack.
Called after creating new object, set the active scope to
ICO_SETSCOPE
be the object scope.
Get object attribute, push the pointer to the stack.
ICO_LOADSUBADDRESS
Open brace
ICO_BRACESTART
End brace
ICO_BRACEEND
Import package
ICO_IMPORT
(Other)
Operation Description
Copy by reference
ICO_SETREFERENCE
Remove reference
ICO_KILLREFERENCE
(Bitwise Operators)
Operation Description
Stack[nSize-1] = Stack[nSize-1] & Stack[nSize] , POP
ICO_BITAND
stack[nSize]
Stack[nSize-1] = Stack[nSize-1] | Stack[nSize] , POP
ICO_BITOR
stack[nSize]
Stack[nSize-1] = Stack[nSize-1] ^ Stack[nSize] , POP
ICO_BITXOR
stack[nSize]
Stack[nSize] = ! Stack[nSize]
ICO_BITNOT
(For Step)
Operation Description
Determine step number in for loop
ICO_STEPNUMBER
SEVENTY
RESOURCES
825
INDEX
826
Ring Documentation, Release 1.3
Index 827