EVM操作码中基本算术运算的计算机制
本文解析了EVM中ADD、MUL、SUB、DIV、MOD、SDIV、ADDMOD和MULMOD操作码的计算机制,包括其输入、输出和Gas消耗。
EVM操作码中ADD和MUL的计算机制
EVM中的ADD(0x01)和MUL(0x02)操作码分别用于执行加法和乘法运算。ADD操作码接收两个256位的整数,计算它们的和并取模2^256,结果压入栈中。MUL操作码则执行两个256位整数的乘法,结果同样取模2^256。这两个操作码的Gas消耗分别为3和5,反映了计算复杂度的差异。
EVM操作码中SUB和DIV的计算机制
EVM中的SUB(0x03)和DIV(0x04)操作码分别用于执行减法和除法运算。SUB操作码接收两个256位的整数,计算它们的差并取模2^256,结果压入栈中。DIV操作码则执行两个256位无符号整数的除法,结果为商。这两个操作码的Gas消耗分别为3和5,体现了计算复杂度的差异。
EVM操作码中MOD和SDIV的计算机制
EVM中的MOD(0x06)和SDIV(0x05)操作码分别用于执行取模和整数除法运算。MOD操作码接收两个256位无符号整数,计算它们的余数并压入栈中。SDIV操作码则执行两个256位有符号整数的除法,结果为商。这两个操作码的Gas消耗均为5,反映了计算复杂度的相似性。
EVM操作码中ADDMOD和MULMOD的计算机制
EVM中的ADDMOD(0x08)和MULMOD(0x09)操作码分别用于执行带模运算的加法和乘法。ADDMOD接收三个256位整数,计算(a + b) % N并压入栈中。MULMOD接收三个256位整数,计算(a * b) % N并压入栈中。这两个操作码的Gas消耗均为8,表明它们的计算复杂度较高。
资料与延伸阅读
你可以通过以下原始资料核对文中概念,并继续深入阅读。