现在的位置: 首页 > 综合 > 正文

基于栈与基于寄存器的区别

2013年12月02日 ⁄ 综合 ⁄ 共 236字 ⁄ 字号 评论关闭

基于寄存器的虚拟机:
1、使用堆栈来分配激活记录器
2、基于寄存器代码免去了使用push和pop命令的麻烦,减少了每个函数的指令总数。
3、代码尺寸和解码效率不如基于栈虚拟机,因为它包含操作数,所以指令大于基于堆栈的指令。但是基于寄存器产生更少的代码,所以总的代码数不会增加。
4、寄存器虚拟机必须从操作指令中解码操作数,需要额外的解码操作。

基于栈的虚拟机:
1、代码必须使用这些指令来移动变量(即push和pop)
2、代码尺寸小和解码效率会更高些
3、堆栈虚拟机指令有隐含的操作数。

抱歉!评论已关闭.