zoukankan      html  css  js  c++  java
  • lua 5.3 字节码指令手册

    原文

    寄存器

    Instruction Notation

    R(A)
    Register A (specified in instruction field A)
    R(B)
    Register B (specified in instruction field B)
    R(C)
    Register C (specified in instruction field C)
    PC
    Program Counter
    Kst(n)
    Element n in the constant list
    Upvalue[n]
    Name of upvalue with index n
    Gbl[sym]
    Global variable indexed by symbol sym
    RK(B)
    Register B or a constant index
    RK(C)
    Register C or a constant index
    sBx
    Signed displacement (in field sBx) for all kinds of jumps

    Instruction Summary

    Lua bytecode instructions are 32-bits in size. All instructions have an opcode in the first 6 bits. Instructions can have the following fields:

    'A' : 8 bits
    'B' : 9 bits
    'C' : 9 bits
    'Ax' : 26 bits ('A', 'B', and 'C' together)
    'Bx' : 18 bits ('B' and 'C' together)
    'sBx' : signed Bx

    A signed argument is represented in excess K; that is, the number value is the unsigned value minus K. K is exactly the maximum value for that argument (so that -max is represented by 0, and +max is represented by 2*max), which is half the maximum for the corresponding unsigned argument.

    操作码

    Opcode Description
    MOVE Copy a value between registers
    LOADK Load a constant into a register
    LOADKX Load a constant into a register
    LOADBOOL Load a boolean into a register
    LOADNIL Load nil values into a range of registers
    GETUPVAL Read an upvalue into a register
    GETTABUP Read a value from table in up-value into a register
    GETTABLE Read a table element into a register
    SETTABUP Write a register value into table in up-value
    SETUPVAL Write a register value into an upvalue
    SETTABLE Write a register value into a table element
    NEWTABLE Create a new table
    SELF Prepare an object method for calling
    ADD Addition operator
    SUB Subtraction operator
    MUL Multiplication operator
    MOD Modulus (remainder) operator
    POW Exponentation operator
    DIV Division operator
    IDIV Integer division operator
    BAND Bit-wise AND operator
    BOR Bit-wise OR operator
    BXOR Bit-wise Exclusive OR operator
    SHL Shift bits left
    SHR Shift bits right
    UNM Unary minus
    BNOT Bit-wise NOT operator
    NOT Logical NOT operator
    LEN Length operator
    CONCAT Concatenate a range of registers
    JMP Unconditional jump
    EQ Equality test, with conditional jump
    LT Less than test, with conditional jump
    LE Less than or equal to test, with conditional jump
    TEST Boolean test, with conditional jump
    TESTSET Boolean test, with conditional jump and assignment
    CALL Call a closure
    TAILCALL Perform a tail call
    RETURN Return from function call
    FORLOOP Iterate a numeric for loop
    FORPREP Initialization for a numeric for loop
    TFORLOOP Iterate a generic for loop
    TFORCALL Initialization for a generic for loop
    SETLIST Set a range of array elements for a table
    CLOSURE Create a closure of a function prototype
    VARARG Assign vararg function arguments to registers
  • 相关阅读:
    财务报表分析(张新民教授)-第五章 企业报表战略分析(1):资源配置战略(续)
    财务报表分析(张新民教授)-第五章 企业报表战略分析(1):资源配置战略
    财务报表分析(张新民教授)-第四章 企业经营活动与财务报表的关系
    以商品为生25:交易商品价差
    以商品为生22:页岩油与水力压裂的优缺点
    以商品为生17:石油价格历史——自1974年以来的高点和低点
    以商品为生15:商品交易中的Backwardation和Contango
    以商品为生14:大宗商品投资者的大豆交易指南
    以商品为生11:来自USDA的月度WASDE报告
    AJAX 跨域请求
  • 原文地址:https://www.cnblogs.com/jiftle/p/15677183.html
Copyright © 2011-2022 走看看