区块链 以太坊 虚拟机 EVM 为什么256条指令

以太坊虚拟机介绍

EVM基本信息

编程语言虚拟机一般有两种类型,

大部分我们所熟知的语言都采用基于栈的虚拟机,比如最著名的Java虚拟机

在游戏领域非常流行的Lua语言则采用了基于寄存器的虚拟机。

和JVM一样,EVM也是基于栈的虚拟机。

既然是支持栈的虚拟机,那么EVM肯定首先得有个

为了方便进行密码学计算,EVM采用了32字节(256比特)的字长

EVM栈以字(Word)为单位进行操作,最多可以容纳1024个字

这就是我们在这篇文章里需要了解的EVM信息,在后面的文章里,我们会逐步介绍更多的EVM细节。

下面是EVM栈的示意图:

stack

EVM指令集

和JVM一样,EVM执行的也是字节码

如0xF0,16进制,8位。

由于操作码被限制在一个字节(8bit)以内,所以EVM指令集最多只能容纳256条指令(指一行)

目前EVM已经定义了约142条指令,还有100多条指令可供以后扩展。

这142条指令包括

  • 算术运算指令
  • 比较操作指令,
  • 按位运算指令,
  • 密码学计算指令,
  • memory、
  • storage操作指令,
  • 跳转指令,
  • 区块、
  • 智能合约相关指令

等。

我们会在后面的文章里逐步讨论这些指令,下面是已经定义的EVM操作码分布图(灰色区域是目前还没有定义的操作码):

opcodes

https://www.pianshen.com/article/2419567973/

猜你喜欢

转载自blog.csdn.net/u013288190/article/details/112984729