区块链 以太坊 虚拟机 EVM 为什么256条指令
  DJsdk34H4Gbu 2023年11月02日 105 0


以太坊虚拟机介绍


EVM基本信息

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

  • 基于栈,
  • 基于寄存器。

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

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

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

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

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


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


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

下面是EVM栈的示意图:

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



EVM指令集

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

如0xF0,16进制,8位。

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

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

这142条指令包括

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

等。

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



区块链 以太坊 虚拟机 EVM 为什么256条指令_寄存器_02



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  7VNj03Sk0rti   2023年11月02日   57   0   0 寄存器android操作数
  7VNj03Sk0rti   2023年11月02日   73   0   0 寄存器android操作数
DJsdk34H4Gbu