您的位置:首页 > 其它

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

2012-08-25 07:28 225 查看
基于寄存器的虚拟机:

1、使用堆栈来分配激活记录器

2、基于寄存器代码免去了使用push和pop命令的麻烦,减少了每个函数的指令总数。

3、代码尺寸和解码效率不如基于栈虚拟机,因为它包含操作数,所以指令大于基于堆栈的指令。但是基于寄存器产生更少的代码,所以总的代码数不会增加。

4、寄存器虚拟机必须从操作指令中解码操作数,需要额外的解码操作。

基于栈的虚拟机:

1、代码必须使用这些指令来移动变量(即push和pop)

2、代码尺寸小和解码效率会更高些

3、堆栈虚拟机指令有隐含的操作数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: