汇编实用程序允许解析和编译Ethers ASM Dialect源文件。
解析ethers格式的程序集文件并返回抽象语法树(Abstract Syntax Tree)。
执行抽象语法树(Abstract Syntax Tree)节点的汇编,并返回结果(字节码表示)。
反汇编程序 可以很容易地将字节码转换为一个对象,方便地去检查程序结构。
创建操作(Operation)数组的格式化输出。
字节码 inherits Array<操作(Operation)>
每个数组索引代表一个操作,将多字节操作(即PUSH
)分解为单个操作。
通过给定的偏移量在字节码中获得操作(operation)。需要确保偏移处的字节是一个操作, 而不是包含在PUSH
中的数据(如果是这种情况将返回null)。
操作是来自反汇编字节码流的单个命令。
该操作的操作码。
operation.offset ⇒ number
该操作进入字节码的偏移量。
如果操作码是PUSH
,那么这个输出就是push的值
操作码(Opcode)
为给定的数值(例如:0x60 is PUSH1)或助记符字符串(例如:"PUSH1")创建一个新的操作码实例。
opcode.value ⇒ number
该操作码的值(字节码作为数字)。
opcode.mnemonic ⇒ string
该操作码的助记符字符串。
opcode.delta ⇒ number
该操作码将从堆栈中消耗的项的数量。
opcode.alpha ⇒ number
该操作码将压入栈中的项数。
opcode.doc ⇒ string
该操作码功能的简短描述。
opcode.isMemory( ) ⇒ "read" | "write" | "full"
如果操作码访问内存则返回true。
opcode.isStatic( ) ⇒ boolean
如果操作码不能更改状态(静态的),则返回true。
opcode.isJump( ) ⇒ boolean
如果操作码是跳转操作,则返回true。
opcode.isPush( ) ⇒ number
如果操作码不是PUSH*
,则返回0; 如果是,则返回该操作码将push的字节。
The content of this site is licensed under the Creative Commons License. Generated on January 11, 2023, 9:24pm.