擅长:python、mysql、java
<p>假设每个字节码指令由一个操作码和零个或多个操作数组成。有固定的一小组操作码和(通常)相当大的一组操作数</p>
<p>对于每个不同的操作码,VM的源代码都有一些实现该操作码的代码。所有的源代码都被编译成机器代码。因此,在VM的机器代码中,每个操作码都有机器代码</p>
<p>当CPU执行VM的机器代码时,VM通过查看其操作码,然后切换/跳转到实现该操作码的机器代码块,并将操作数传递给它,从而重复执行下一条字节码指令</p>
<p>在这个过程中,没有任何一点是将整个字节码指令翻译成等效的机器代码,所以两个“流”都不正确</p>
<p>当Python文档说VM“执行对应于每个字节码的机器代码”时,这有点不精确。只有CPU执行机器代码。具体而言,CPU在执行VM的机器代码时,将执行与输入字节码中出现的每个操作码对应的机器代码</p>