Template:LSO Bytecodes: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
mNo edit summary |
||
Line 345: | Line 345: | ||
{{!}} BITOR | {{!}} BITOR | ||
{{!}} {{LSL Hex|0x7C}} | {{!}} {{LSL Hex|0x7C}} | ||
{{!}} Pop dword (Right) then dword (Left), push result of (Left | Right) onto the stack. | {{!}} Pop dword (Right) then dword (Left), push result of (Left | Right) onto the stack. | ||
{{!}}- | {{!}}- | ||
{{!}} BITXOR | {{!}} BITXOR | ||
Line 357: | Line 357: | ||
{{!}} BOOLOR | {{!}} BOOLOR | ||
{{!}} {{LSL Hex|0x7F}} | {{!}} {{LSL Hex|0x7F}} | ||
{{!}} Pop dword (Right) then dword (Left), push result of (Left || Right) onto the stack. | {{!}} Pop dword (Right) then dword (Left), push result of (Left || Right) onto the stack. | ||
{{!}}- | {{!}}- | ||
{{!}} NEG | {{!}} NEG |
Revision as of 14:08, 27 November 2007
Name | Value | Description | arg0 size | arg1 size |
---|---|---|---|---|
NOOP | 0x00 | Does nothing | ||
POPS | 0x02 | Pops a dword from the stack and deallocates it from the heap as a string | ||
POPL | 0x03 | Pops a dword from the stack and deallocates it from the heap as a list | ||
POPV | 0x04 | Pops 3 dwords from the stack. | ||
POPQ | 0x05 | Pops 4 dwords from the stack. | ||
POPARG | 0x06 | Pops arg0 bytes from the stack. | dword | |
POPBP | 0x08 | Pop dword and set it to BasePointer | ||
POPSP | 0x09 | Pop dword and set it to StackPointer | ||
POPSLR | 0x0A | Pop dword and set it to the SleepRegister | ||
DUPS | 0x21 | Copy string from stack and push the copy onto the stack. | ||
DUPL | 0x22 | Copy list from stack and push the copy onto the stack. | ||
DUPV | 0x23 | Copy 3 dwrods from stack and push the copy onto the stack. | ||
DUPQ | 0x24 | Copy 4 dwrods from stack and push the copy onto the stack. | ||
STORES | 0x31 | Copy a string from the stack and store to local arg0 address. | dword | |
STOREL | 0x32 | Copy a list from the stack and store to local arg0 address. | dword | |
STOREV | 0x33 | Copy 3 dwords from the stack and store to local arg0 address. | dword | |
STOREQ | 0x34 | Copy 4 dwords from the stack and store to local arg0 address. | dword | |
STOREGS | 0x36 | Copy a string from the stack and store to global arg0 address. | dword | |
STOREGL | 0x37 | Copy a list from the stack and store to global arg0 address. | dword | |
STOREGV | 0x38 | Copy 3 dwords from the stack and store to global arg0 address. | dword | |
STOREGQ | 0x39 | Copy 4 dwords from the stack and store to global arg0 address. | dword | |
LOADSP | 0x3B | Pop a string from the stack and store to local arg0 address. | dword | |
LOADLP | 0x3C | Pop a list from the stack and store to local arg0 address. | dword | |
LOADVP | 0x3D | Pop 3 dwords from the stack and store to local arg0 address. | dword | |
LOADQP | 0x3E | Pop 4 dwords from the stack and store to local arg0 address. | dword | |
LOADGSP | 0x40 | Pop a string from the stack and store to global arg0 address. | dword | |
LOADGLP | 0x41 | Pop a list from the stack and store to global arg0 address. | dword | |
LOADGVP | 0x42 | Pop 3 dwords from the stack and store to global arg0 address. | dword | |
LOADGQP | 0x43 | Pop 4 dwords from the stack and store to global arg0 address. | dword | |
PUSHS | 0x51 | Push a string from the local address arg0 to the stack. | dword | |
PUSHL | 0x52 | Push a list from the local address arg0 to the stack. | dword | |
PUSHV | 0x53 | Push 3 dwords from the local address arg0 to the stack. | dword | |
PUSHQ | 0x54 | Push 4 dwords from the local address arg0 to the stack. | dword | |
PUSHGS | 0x56 | Push a string from the global address arg0 to the stack. | dword | |
PUSHGL | 0x57 | Push a list from the global address arg0 to the stack. | dword | |
PUSHGV | 0x58 | Push 3 dwords from the global address arg0 to the stack. | dword | |
PUSHGQ | 0x59 | Push 4 dwords from the global address arg0 to the stack. | dword | |
PUSHBP | 0x5B | Push BasePointer onto the stack | ||
PUSHSP | 0x5C | Push StackPointer onto the stack | ||
PUSHARGI | 0x5E | |||
PUSHARGF | 0x5F | |||
PUSHARGS | 0x60 | |||
PUSHARGV | 0x61 | |||
PUSHARGQ | 0x62 | |||
PUSHEV | 0x64 | Push 3 zero dwords onto the stack | ||
PUSHEQ | 0x65 | Push 4 zero dwords onto the stack | ||
PUSHARGE | 0x66 | Push arg0 zero bytes onto the stack. | dword | |
SUB | 0x71 | Pop type.Right then type.Left, push result of (Left - Right) onto the stack. | type | |
MUL | 0x72 | Pop type.Right then type.Left, push result of (Left * Right) onto the stack. | type | |
DIV | 0x73 | Pop type.Right then type.Left, push result of (Left / Right) onto the stack. | type | |
MOD | 0x74 | Pop type.Right then type.Left, push result of (Left % Right) onto the stack. | type | |
EQ | 0x75 | Pop type.Right then type.Left, push result of (Left == Right) onto the stack. | type | |
NEQ | 0x76 | Pop type.Right then type.Left, push result of (Left != Right) onto the stack. | type | |
LEQ | 0x77 | Pop type.Right then type.Left, push result of (Left <= Right) onto the stack. | type | |
GEQ | 0x78 | Pop type.Right then type.Left, push result of (Left >= Right) onto the stack. | type | |
LESS | 0x79 | Pop type.Right then type.Left, push result of (Left < Right) onto the stack. | type | |
GREATER | 0x7A | Pop type.Right then type.Left, push result of (Left > Right) onto the stack. | type | |
BITAND | 0x7B | Pop dword (Right) then dword (Left), push result of (Left & Right) onto the stack. | ||
BITOR | 0x7C | Pop dword (Right) then dword (Left), push result of (Left | Right) onto the stack. | ||
BITXOR | 0x7D | Pop dword (Right) then dword (Left), push result of (Left ^ Right) onto the stack. | ||
BOOLAND | 0x7E | Pop dword (Right) then dword (Left), push result of (Left && Right) onto the stack. | ||
BOOLOR | 0x7F | Pop dword (Right) then dword (Left), push result of (Left || Right) onto the stack. | ||
NEG | 0x80 | Pop type.Right, push result of (-Right) onto the stack. | type | |
BITNOT | 0x81 | Pop dword (Right), push result of (~Right) onto the stack. | ||
BOOLNOT | 0x82 | Pop dword (Right), push result of (!Right) onto the stack. | ||
JUMPIF | 0x91 | Pop type.Right, if Right is executes to true jump to offset arg1 local to this instruction. arg1 is signed. | type | dword |
JUMPNIF | 0x92 | Pop type.Right, if Right is executes to false jump to offset arg1 local to this instruction. arg1 is signed. | type | dword |
CALL | 0x94 | Execute user function arg0. | dword | |
RETURN | 0x95 | Revert the Instruction and Stack pointers. | ||
STACKTOL | 0xB1 | Pop arg0 objects from the stack, store them as a list on the heap and push a list pointer onto the stack. | dword | |
CALLLIB_TWO_BYTE | 0xD1 | Execute built-in function arg0 | word | |
SHR | 0xE1 | Pop dword (Right) then dword (Left), push result of (Left >> Right) onto the stack. |