Template:LSO Bytecodes: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{ | <includeonly>{{{!}} class="sortable" {{Prettytable}} | ||
{{!}}-{{Hl2}} | |||
!Name | !Name | ||
!Value | !Value | ||
!class="unsortable" | !class="unsortable"{{!}}Description | ||
!class="unsortable" | !class="unsortable"{{!}}{{#ifexpr:{{#if:{{{args|}}}|{{{args}}}|2}}>0|arg0 size}} | ||
!class="unsortable"{{!}}{{#ifexpr:{{#if:{{{args|}}}|{{{args}}}|2}}>1|arg1 size}} | |||
!class="unsortable" | |||
{{!}}- | {{!}}- | ||
{{#if:{{{all|}}}<noinclude>*</noinclude>|<span style="visibility:hidden"></span> | {{#if:{{{all|}}}<noinclude>*</noinclude>|<span style="visibility:hidden"></span> | ||
Line 17: | Line 15: | ||
{{!}} POP | {{!}} POP | ||
{{!}} {{LSL Hex|0x01}} | {{!}} {{LSL Hex|0x01}} | ||
{{!}} Pops a dword from the stack. | |||
{{!}}- | {{!}}- | ||
{{!}} POPS | {{!}} POPS | ||
{{!}} {{LSL Hex|0x02}} | {{!}} {{LSL Hex|0x02}} | ||
{{!}} Pops a dword from the stack and deallocates it from the heap as a string | |||
{{!}}- | {{!}}- | ||
{{!}} POPL | {{!}} POPL | ||
{{!}} {{LSL Hex|0x03}} | {{!}} {{LSL Hex|0x03}} | ||
{{!}} Pops a dword from the stack and deallocates it from the heap as a list | |||
{{!}}- | {{!}}- | ||
{{!}} POPV | {{!}} POPV | ||
{{!}} {{LSL Hex|0x04}} | {{!}} {{LSL Hex|0x04}} | ||
{{!}} Pops 3 dwords from the stack. | |||
{{!}}- | {{!}}- | ||
{{!}} POPQ | {{!}} POPQ | ||
{{!}} {{LSL Hex|0x05}} | {{!}} {{LSL Hex|0x05}} | ||
{{!}} Pops 4 dwords from the stack. | |||
{{!}}- | {{!}}- | ||
{{!}} POPARG | {{!}} POPARG | ||
{{!}} {{LSL Hex|0x06}} | {{!}} {{LSL Hex|0x06}} | ||
{{!}} Pops arg0 bytes from the stack. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
}}{{#if:{{{all|}}}{{{rpop|}}}{{{pop|}}}|<span style="visibility:hidden"></span> | }}{{#if:{{{all|}}}{{{rpop|}}}{{{pop|}}}|<span style="visibility:hidden"></span> | ||
{{!}}POPIP | {{!}} POPIP | ||
{{!}}{{LSL Hex|0x07}} | {{!}} {{LSL Hex|0x07}} | ||
{{!}} Pop InstructionPointer, set instruction pointer to here | |||
{{!}}- | {{!}}- | ||
{{!}} POPBP | {{!}} POPBP | ||
{{!}} {{LSL Hex|0x08}} | {{!}} {{LSL Hex|0x08}} | ||
{{!}} Pop dword and set it to BasePointer | |||
{{!}}- | {{!}}- | ||
{{!}} POPSP | {{!}} POPSP | ||
{{!}} {{LSL Hex|0x09}} | {{!}} {{LSL Hex|0x09}} | ||
{{!}} Pop dword and set it to StackPointer | |||
{{!}}- | {{!}}- | ||
{{!}} POPSLR | {{!}} POPSLR | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0x0A}} | ||
{{!}} Pop dword and set it to the SleepRegister | |||
{{!}}- | {{!}}- | ||
}}{{#if:{{{all|}}}{{{dup|}}}|<span style="visibility:hidden"></span> | }}{{#if:{{{all|}}}{{{dup|}}}|<span style="visibility:hidden"></span> | ||
{{!}} DUP | {{!}} DUP | ||
{{!}} {{LSL Hex|0x20}} | {{!}} {{LSL Hex|0x20}} | ||
{{!}} Copy dword from stack and push the copy onto the stack. | |||
{{!}}- | {{!}}- | ||
{{!}} DUPS | {{!}} DUPS | ||
{{!}} {{LSL Hex|0x21}} | {{!}} {{LSL Hex|0x21}} | ||
{{!}} Copy string from stack and push the copy onto the stack. | |||
{{!}}- | {{!}}- | ||
{{!}} DUPL | {{!}} DUPL | ||
{{!}} {{LSL Hex|0x22}} | {{!}} {{LSL Hex|0x22}} | ||
{{!}} Copy list from stack and push the copy onto the stack. | |||
{{!}}- | {{!}}- | ||
{{!}} DUPV | {{!}} DUPV | ||
{{!}} {{LSL Hex|0x23}} | {{!}} {{LSL Hex|0x23}} | ||
{{!}} Copy 3 dwrods from stack and push the copy onto the stack. | |||
{{!}}- | {{!}}- | ||
{{!}} DUPQ | {{!}} DUPQ | ||
{{!}} {{LSL Hex|0x24}} | {{!}} {{LSL Hex|0x24}} | ||
{{!}} Copy 4 dwrods from stack and push the copy onto the stack. | |||
{{!}}- | {{!}}- | ||
}}{{#if:{{{all|}}}{{{store|}}}{{{store-local|}}}|<span style="visibility:hidden"></span> | }}{{#if:{{{all|}}}{{{store|}}}{{{store-local|}}}|<span style="visibility:hidden"></span> | ||
{{!}} STORE | {{!}} STORE | ||
{{!}} {{LSL Hex|0x30}} | {{!}} {{LSL Hex|0x30}} | ||
{{!}} Copy a dword from the stack and store to local arg0 address. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} STORES | {{!}} STORES | ||
{{!}} {{LSL Hex|0x31}} | {{!}} {{LSL Hex|0x31}} | ||
{{!}} Copy a string from the stack and store to local arg0 address. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} STOREL | {{!}} STOREL | ||
{{!}} {{LSL Hex|0x32}} | {{!}} {{LSL Hex|0x32}} | ||
{{!}} Copy a list from the stack and store to local arg0 address. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} STOREV | {{!}} STOREV | ||
{{!}} {{LSL Hex|0x33}} | {{!}} {{LSL Hex|0x33}} | ||
{{!}} Copy 3 dwords from the stack and store to local arg0 address. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} STOREQ | {{!}} STOREQ | ||
{{!}} {{LSL Hex|0x34}} | {{!}} {{LSL Hex|0x34}} | ||
{{!}} Copy 4 dwords from the stack and store to local arg0 address. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
}}{{#if:{{{all|}}}{{{store|}}}{{{store-global|}}}|<span style="visibility:hidden"></span> | }}{{#if:{{{all|}}}{{{store|}}}{{{store-global|}}}|<span style="visibility:hidden"></span> | ||
{{!}} STOREG | {{!}} STOREG | ||
{{!}} {{LSL Hex|0x35}} | {{!}} {{LSL Hex|0x35}} | ||
{{!}} Copy a dword from the stack and store to global arg0 address. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} STOREGS | {{!}} STOREGS | ||
{{!}} {{LSL Hex|0x36}} | {{!}} {{LSL Hex|0x36}} | ||
{{!}} Copy a string from the stack and store to global arg0 address. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} STOREGL | {{!}} STOREGL | ||
{{!}} {{LSL Hex|0x37}} | {{!}} {{LSL Hex|0x37}} | ||
{{!}} Copy a list from the stack and store to global arg0 address. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} STOREGV | {{!}} STOREGV | ||
{{!}} {{LSL Hex|0x38}} | {{!}} {{LSL Hex|0x38}} | ||
{{!}} Copy 3 dwords from the stack and store to global arg0 address. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} STOREGQ | {{!}} STOREGQ | ||
{{!}} {{LSL Hex|0x39}} | {{!}} {{LSL Hex|0x39}} | ||
{{!}} Copy 4 dwords from the stack and store to global arg0 address. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
}}{{#if:{{{all|}}}{{{load|}}}{{{load-local|}}}|<span style="visibility:hidden"></span> | }}{{#if:{{{all|}}}{{{load|}}}{{{load-local|}}}|<span style="visibility:hidden"></span> | ||
{{!}} LOADP | {{!}} LOADP | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0x3A}} | ||
{{!}} Pop a dword from the stack and store to local arg0 address. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} LOADSP | {{!}} LOADSP | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0x3B}} | ||
{{!}} Pop a string from the stack and store to local arg0 address. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} LOADLP | {{!}} LOADLP | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0x3C}} | ||
{{!}} Pop a list from the stack and store to local arg0 address. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} LOADVP | {{!}} LOADVP | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0x3D}} | ||
{{!}} Pop 3 dwords from the stack and store to local arg0 address. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} LOADQP | {{!}} LOADQP | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0x3E}} | ||
{{!}} Pop 4 dwords from the stack and store to local arg0 address. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
}}{{#if:{{{all|}}}{{{load|}}}{{{load-global|}}}|<span style="visibility:hidden"></span> | }}{{#if:{{{all|}}}{{{load|}}}{{{load-global|}}}|<span style="visibility:hidden"></span> | ||
{{!}} LOADGP | {{!}} LOADGP | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0x3F}} | ||
{{!}} Pop a dword from the stack and store to global arg0 address. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} LOADGSP | {{!}} LOADGSP | ||
{{!}} {{LSL Hex|0x40}} | {{!}} {{LSL Hex|0x40}} | ||
{{!}} Pop a string from the stack and store to global arg0 address. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} LOADGLP | {{!}} LOADGLP | ||
{{!}} {{LSL Hex|0x41}} | {{!}} {{LSL Hex|0x41}} | ||
{{!}} Pop a list from the stack and store to global arg0 address. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} LOADGVP | {{!}} LOADGVP | ||
{{!}} {{LSL Hex|0x42}} | {{!}} {{LSL Hex|0x42}} | ||
{{!}} Pop 3 dwords from the stack and store to global arg0 address. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} LOADGQP | {{!}} LOADGQP | ||
{{!}} {{LSL Hex|0x43}} | {{!}} {{LSL Hex|0x43}} | ||
{{!}} Pop 4 dwords from the stack and store to global arg0 address. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
}}{{#if:{{{all|}}}{{{push|}}}{{{push-local|}}}|<span style="visibility:hidden"></span> | }}{{#if:{{{all|}}}{{{push|}}}{{{push-local|}}}|<span style="visibility:hidden"></span> | ||
{{!}} PUSH | {{!}} PUSH | ||
{{!}} {{LSL Hex|0x50}} | {{!}} {{LSL Hex|0x50}} | ||
{{!}} Push a dword from the local address arg0 to the stack. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} PUSHS | {{!}} PUSHS | ||
{{!}} {{LSL Hex|0x51}} | {{!}} {{LSL Hex|0x51}} | ||
{{!}} Push a string from the local address arg0 to the stack. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} PUSHL | {{!}} PUSHL | ||
{{!}} {{LSL Hex|0x52}} | {{!}} {{LSL Hex|0x52}} | ||
{{!}} Push a list from the local address arg0 to the stack. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} PUSHV | {{!}} PUSHV | ||
{{!}} {{LSL Hex|0x53}} | {{!}} {{LSL Hex|0x53}} | ||
{{!}} Push 3 dwords from the local address arg0 to the stack. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} PUSHQ | {{!}} PUSHQ | ||
{{!}} {{LSL Hex|0x54}} | {{!}} {{LSL Hex|0x54}} | ||
{{!}} Push 4 dwords from the local address arg0 to the stack. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
}}{{#if:{{{all|}}}{{{push|}}}{{{push-global|}}}|<span style="visibility:hidden"></span> | }}{{#if:{{{all|}}}{{{push|}}}{{{push-global|}}}|<span style="visibility:hidden"></span> | ||
{{!}} PUSHG | {{!}} PUSHG | ||
{{!}} {{LSL Hex|0x55}} | {{!}} {{LSL Hex|0x55}} | ||
{{!}} Push a dword from the global address arg0 to the stack. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} PUSHGS | {{!}} PUSHGS | ||
{{!}} {{LSL Hex|0x56}} | {{!}} {{LSL Hex|0x56}} | ||
{{!}} Push a string from the global address arg0 to the stack. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} PUSHGL | {{!}} PUSHGL | ||
{{!}} {{LSL Hex|0x57}} | {{!}} {{LSL Hex|0x57}} | ||
{{!}} Push a list from the global address arg0 to the stack. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} PUSHGV | {{!}} PUSHGV | ||
{{!}} {{LSL Hex|0x58}} | {{!}} {{LSL Hex|0x58}} | ||
{{!}} Push 3 dwords from the global address arg0 to the stack. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} PUSHGQ | {{!}} PUSHGQ | ||
{{!}} {{LSL Hex|0x59}} | {{!}} {{LSL Hex|0x59}} | ||
{{!}} Push 4 dwords from the global address arg0 to the stack. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
}}{{#if:{{{all|}}}{{{push|}}}{{{push-register|}}}|<span style="visibility:hidden"></span> | }}{{#if:{{{all|}}}{{{push|}}}{{{push-register|}}}|<span style="visibility:hidden"></span> | ||
{{!}} PUSHIP | {{!}} PUSHIP | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0x5A}} | ||
{{!}} Push InstructionPointer onto the stack | |||
{{!}}- | {{!}}- | ||
{{!}} PUSHBP | {{!}} PUSHBP | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0x5B}} | ||
{{!}} Push BasePointer onto the stack | |||
{{!}}- | {{!}}- | ||
{{!}} PUSHSP | {{!}} PUSHSP | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0x5C}} | ||
{{!}} Push StackPointer onto the stack | |||
{{!}}- | {{!}}- | ||
}}{{#if:{{{all|}}}{{{push|}}}{{{push-list | }}{{#if:{{{all|}}}{{{push|}}}{{{push-list|}}}|<span style="visibility:hidden"></span> | ||
{{!}} PUSHARGB | {{!}} PUSHARGB | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0x5D}} | ||
{{!}} | |||
{{!}}- | {{!}}- | ||
{{!}} PUSHARGI | {{!}} PUSHARGI | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0x5E}} | ||
{{!}}- | {{!}}- | ||
{{!}} PUSHARGF | {{!}} PUSHARGF | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0x5F}} | ||
{{!}}- | {{!}}- | ||
{{!}} PUSHARGS | {{!}} PUSHARGS | ||
Line 187: | Line 265: | ||
{{!}} {{LSL Hex|0x62}} | {{!}} {{LSL Hex|0x62}} | ||
{{!}}- | {{!}}- | ||
}}{{#if:{{{all|}}}{{{push|}}}{{{push-list|}}}|<span style="visibility:hidden"></span> | |||
{{!}} PUSHE | {{!}} PUSHE | ||
{{!}} {{LSL Hex|0x63}} | {{!}} {{LSL Hex|0x63}} | ||
{{!}} Push a zero dword onto the stack | |||
{{!}}- | {{!}}- | ||
{{!}} PUSHEV | {{!}} PUSHEV | ||
{{!}} {{LSL Hex|0x64}} | {{!}} {{LSL Hex|0x64}} | ||
{{!}} Push 3 zero dwords onto the stack | |||
{{!}}- | {{!}}- | ||
{{!}} PUSHEQ | {{!}} PUSHEQ | ||
{{!}} {{LSL Hex|0x65}} | {{!}} {{LSL Hex|0x65}} | ||
{{!}} Push 4 zero dwords onto the stack | |||
{{!}}- | {{!}}- | ||
{{!}} PUSHARGE | {{!}} PUSHARGE | ||
{{!}} {{LSL Hex|0x66}} | {{!}} {{LSL Hex|0x66}} | ||
{{!}} Push arg0 zero bytes onto the stack. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
}}{{#if:{{{all|}}}{{{operators|}}}|<span style="visibility:hidden"></span> | }}{{#if:{{{all|}}}{{{operators|}}}|<span style="visibility:hidden"></span> | ||
{{!}} ADD | {{!}} ADD | ||
{{!}} {{LSL Hex|0x70}} | {{!}} {{LSL Hex|0x70}} | ||
{{!}} Pop type.Right then type.Left, push result of (Left + Right) onto the stack. | |||
{{!}} type | |||
{{!}}- | {{!}}- | ||
{{!}} SUB | {{!}} SUB | ||
{{!}} {{LSL Hex|0x71}} | {{!}} {{LSL Hex|0x71}} | ||
{{!}} Pop type.Right then type.Left, push result of (Left - Right) onto the stack. | |||
{{!}} type | |||
{{!}}- | {{!}}- | ||
{{!}} MUL | {{!}} MUL | ||
{{!}} {{LSL Hex|0x72}} | {{!}} {{LSL Hex|0x72}} | ||
{{!}} Pop type.Right then type.Left, push result of (Left * Right) onto the stack. | |||
{{!}} type | |||
{{!}}- | {{!}}- | ||
{{!}} DIV | {{!}} DIV | ||
{{!}} {{LSL Hex|0x73}} | {{!}} {{LSL Hex|0x73}} | ||
{{!}} Pop type.Right then type.Left, push result of (Left / Right) onto the stack. | |||
{{!}} type | |||
{{!}}- | {{!}}- | ||
{{!}} MOD | {{!}} MOD | ||
{{!}} {{LSL Hex|0x74}} | {{!}} {{LSL Hex|0x74}} | ||
{{!}} Pop type.Right then type.Left, push result of (Left % Right) onto the stack. | |||
{{!}} type | |||
{{!}}- | {{!}}- | ||
{{!}} EQ | {{!}} EQ | ||
{{!}} {{LSL Hex|0x75}} | {{!}} {{LSL Hex|0x75}} | ||
{{!}} Pop type.Right then type.Left, push result of (Left == Right) onto the stack. | |||
{{!}} type | |||
{{!}}- | {{!}}- | ||
{{!}} NEQ | {{!}} NEQ | ||
{{!}} {{LSL Hex|0x76}} | {{!}} {{LSL Hex|0x76}} | ||
{{!}} Pop type.Right then type.Left, push result of (Left != Right) onto the stack. | |||
{{!}} type | |||
{{!}}- | {{!}}- | ||
{{!}} LEQ | {{!}} LEQ | ||
{{!}} {{LSL Hex|0x77}} | {{!}} {{LSL Hex|0x77}} | ||
{{!}} Pop type.Right then type.Left, push result of (Left <= Right) onto the stack. | |||
{{!}} type | |||
{{!}}- | {{!}}- | ||
{{!}} GEQ | {{!}} GEQ | ||
{{!}} {{LSL Hex|0x78}} | {{!}} {{LSL Hex|0x78}} | ||
{{!}} Pop type.Right then type.Left, push result of (Left >= Right) onto the stack. | |||
{{!}} type | |||
{{!}}- | {{!}}- | ||
{{!}} LESS | {{!}} LESS | ||
{{!}} {{LSL Hex|0x79}} | {{!}} {{LSL Hex|0x79}} | ||
{{!}} Pop type.Right then type.Left, push result of (Left < Right) onto the stack. | |||
{{!}} type | |||
{{!}}- | {{!}}- | ||
{{!}} GREATER | {{!}} GREATER | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0x7A}} | ||
{{!}} Pop type.Right then type.Left, push result of (Left > Right) onto the stack. | |||
{{!}} type | |||
{{!}}- | {{!}}- | ||
{{!}} BITAND | {{!}} BITAND | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0x7B}} | ||
{{!}} Pop dword (Right) then dword (Left), push result of (Left & Right) onto the stack. | |||
{{!}}- | {{!}}- | ||
{{!}} BITOR | {{!}} BITOR | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0x7C}} | ||
{{!}} Pop dword (Right) then dword (Left), push result of (Left | Right) onto the stack. | |||
{{!}}- | {{!}}- | ||
{{!}} BITXOR | {{!}} BITXOR | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0x7D}} | ||
{{!}} Pop dword (Right) then dword (Left), push result of (Left ^ Right) onto the stack. | |||
{{!}}- | {{!}}- | ||
{{!}} BOOLAND | {{!}} BOOLAND | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0x7E}} | ||
{{!}} Pop dword (Right) then dword (Left), push result of (Left && Right) onto the stack. | |||
{{!}}- | {{!}}- | ||
{{!}} BOOLOR | {{!}} BOOLOR | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0x7F}} | ||
{{!}} Pop dword (Right) then dword (Left), push result of (Left || Right) onto the stack. | |||
{{!}}- | {{!}}- | ||
{{!}} NEG | {{!}} NEG | ||
{{!}} {{LSL Hex|0x80}} | {{!}} {{LSL Hex|0x80}} | ||
{{!}} Pop type.Right, push result of (-Right) onto the stack. | |||
{{!}} type | |||
{{!}}- | {{!}}- | ||
{{!}} BITNOT | {{!}} BITNOT | ||
{{!}} {{LSL Hex|0x81}} | {{!}} {{LSL Hex|0x81}} | ||
{{!}} Pop dword (Right), push result of (~Right) onto the stack. | |||
{{!}}- | {{!}}- | ||
{{!}} BOOLNOT | {{!}} BOOLNOT | ||
{{!}} {{LSL Hex|0x82}} | {{!}} {{LSL Hex|0x82}} | ||
{{!}} Pop dword (Right), push result of (!Right) onto the stack. | |||
{{!}}- | {{!}}- | ||
}}{{#if:{{{all|}}}{{{jump|}}}{{{flow|}}}|<span style="visibility:hidden"></span> | }}{{#if:{{{all|}}}{{{jump|}}}{{{flow|}}}|<span style="visibility:hidden"></span> | ||
{{!}} JUMP | {{!}} JUMP | ||
{{!}} {{LSL Hex|0x90}} | {{!}} {{LSL Hex|0x90}} | ||
{{!}} Jump to offset arg0 local to this instruction. arg0 is signed. | |||
{{!}}- | {{!}}- | ||
{{!}} JUMPIF | {{!}} JUMPIF | ||
{{!}} {{LSL Hex|0x91}} | {{!}} {{LSL Hex|0x91}} | ||
{{!}} Pop type.Right, if Right is executes to true jump to offset arg1 local to this instruction. arg1 is signed. | |||
{{!}} type | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} JUMPNIF | {{!}} JUMPNIF | ||
{{!}} {{LSL Hex|0x92}} | {{!}} {{LSL Hex|0x92}} | ||
{{!}} Pop type.Right, if Right is executes to false jump to offset arg1 local to this instruction. arg1 is signed. | |||
{{!}} type | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
}}{{#if:{{{all|}}}{{{flow|}}}|<span style="visibility:hidden"></span> | }}{{#if:{{{all|}}}{{{flow|}}}|<span style="visibility:hidden"></span> | ||
{{!}} STATE | {{!}} STATE | ||
{{!}} {{LSL Hex|0x93}} | {{!}} {{LSL Hex|0x93}} | ||
{{!}} Change state to arg0 and return (see RETURN) | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} CALL | {{!}} CALL | ||
{{!}} {{LSL Hex|0x94}} | {{!}} {{LSL Hex|0x94}} | ||
{{!}} | {{!}} Execute user function arg0. | ||
{{!}} dword | {{!}} dword | ||
{{!}}- | {{!}}- | ||
{{!}} RETURN | {{!}} RETURN | ||
{{!}} {{LSL Hex|0x95}} | {{!}} {{LSL Hex|0x95}} | ||
{{!}} Revert the Instruction and Stack pointers. | |||
{{!}}- | {{!}}- | ||
}}{{#if:{{{all|}}}{{{operators|}}}|<span style="visibility:hidden"></span> | }}{{#if:{{{all|}}}{{{operators|}}}|<span style="visibility:hidden"></span> | ||
{{!}} CAST | {{!}} CAST | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0xA0}} | ||
{{!}} | {{!}} Pop type.Left, convert Left to type.Right and push the result onto the stack. | ||
{{!}} | {{!}} type | ||
{{!}}- | {{!}}- | ||
}}{{#if:{{{all|}}}{{{push|}}}| <span style="visibility:hidden"></span> | }}{{#if:{{{all|}}}{{{push|}}}| <span style="visibility:hidden"></span> | ||
{{!}} STACKTOS | {{!}} STACKTOS | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0xB0}} | ||
{{!}} Pop arg0 bytes from the stack, store them as a string on the heap and push a string pointer onto the stack. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
{{!}} STACKTOL | {{!}} STACKTOL | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0xB1}} | ||
{{!}} Pop arg0 objects from the stack, store them as a list on the heap and push a list pointer onto the stack. | |||
{{!}} dword | |||
{{!}}- | {{!}}- | ||
}}{{#if:{{{all|}}}{{{lso-debug|}}}|<span style="visibility:hidden"></span> | }}{{#if:{{{all|}}}{{{lso-debug|}}}|<span style="visibility:hidden"></span> | ||
{{!}} PRINT | {{!}} PRINT | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0xC0}} | ||
{{!}} Pop type.Right from the stack and send it to stdout. | |||
{{!}} type | |||
{{!}}- | {{!}}- | ||
}}{{#if:{{{all|}}}{{{function|}}}|<span style="visibility:hidden"></span> | }}{{#if:{{{all|}}}{{{function|}}}|<span style="visibility:hidden"></span> | ||
{{!}} CALLLIB | {{!}} CALLLIB | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0xD0}} | ||
{{!}} | {{!}} Execute built-in function arg0 | ||
{{!}} byte | {{!}} byte | ||
{{!}}- | {{!}}- | ||
{{!}} CALLLIB_TWO_BYTE | {{!}} CALLLIB_TWO_BYTE | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0xD1}} | ||
{{!}} | {{!}} Execute built-in function arg0 | ||
{{!}} word | {{!}} word | ||
{{!}}- | {{!}}- | ||
}}{{#if:{{{all|}}}{{{operators|}}}|<span style="visibility:hidden"></span> | }}{{#if:{{{all|}}}{{{operators|}}}|<span style="visibility:hidden"></span> | ||
{{!}} SHL | {{!}} SHL | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0xE0}} | ||
{{!}} Pop dword (Right) then dword (Left), push result of (Left << Right) onto the stack. | |||
{{!}}- | {{!}}- | ||
{{!}} SHR | {{!}} SHR | ||
{{!}} {{LSL Hex| | {{!}} {{LSL Hex|0xE1}} | ||
{{!}} Pop dword (Right) then dword (Left), push result of (Left >> Right) onto the stack. | |||
{{!}}- | {{!}}- | ||
}} | }} | ||
{{!}}} | |||
</includeonly><noinclude>{{{{PAGENAME}}|all=*}}</noinclude> |
Revision as of 14:05, 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. |