我正计划为我正在创建的语言创建一个虚拟机,我不明白如何将我的程序集转换为我自己的指令集可以加快执行速度。如果我让VM理解我的程序集,这与让我的VM理解我的字节代码不完全一样吗?很明显,字节码的字符将少于程序集,这真的会造成很大的不同吗?例如,如果我创建了自己的字节码,那么我必须向虚拟机展示如何理解它,如果虚拟机直接读取程序集,那么我仍然必须向它展示如何理解程序集,那么一个程序集怎么能比另一个更快呢?
-编辑--
所以,如果我让虚拟机直接解释下面的代码,它应该和下面的代码一样快吗?
add r1, r2, r3 ; Add the values of reg2 and reg3, store the result in reg1
print r1
编码字节码:
c5 7c 8c d8 c8 d7
上面的字节码和程序集代码只是我认为它会是什么样子的例子。
发布于 2014-03-08 20:21:43
解析是众所周知的困难和缓慢。
如果按照指定的方式使用汇编程序指令,则必须解析指令、解析参数、删除注释。大量解析代码、字符串比较、转换参数以注册偏移量或值等。
执行字节码是一个简单的开关语句,一个简单的整数比较。寄存器参数可以预定义为寄存器数组中的偏移量.快多了。
你仍然可以把它想象成汇编程序--把你的汇编程序编译成字节码。汇编程序显示工具的字节码也是有用的。
https://stackoverflow.com/questions/22273772
复制相似问题