基于栈与基于寄存器的区别
2012-08-25 07:28
225 查看
基于寄存器的虚拟机:
1、使用堆栈来分配激活记录器
2、基于寄存器代码免去了使用push和pop命令的麻烦,减少了每个函数的指令总数。
3、代码尺寸和解码效率不如基于栈虚拟机,因为它包含操作数,所以指令大于基于堆栈的指令。但是基于寄存器产生更少的代码,所以总的代码数不会增加。
4、寄存器虚拟机必须从操作指令中解码操作数,需要额外的解码操作。
基于栈的虚拟机:
1、代码必须使用这些指令来移动变量(即push和pop)
2、代码尺寸小和解码效率会更高些
3、堆栈虚拟机指令有隐含的操作数。
1、使用堆栈来分配激活记录器
2、基于寄存器代码免去了使用push和pop命令的麻烦,减少了每个函数的指令总数。
3、代码尺寸和解码效率不如基于栈虚拟机,因为它包含操作数,所以指令大于基于堆栈的指令。但是基于寄存器产生更少的代码,所以总的代码数不会增加。
4、寄存器虚拟机必须从操作指令中解码操作数,需要额外的解码操作。
基于栈的虚拟机:
1、代码必须使用这些指令来移动变量(即push和pop)
2、代码尺寸小和解码效率会更高些
3、堆栈虚拟机指令有隐含的操作数。
相关文章推荐
- 于堆栈的(Stack-based ) 和基于寄存器(Register-based) 的虚拟机区别
- 解释执行和编译执行的区别、基于栈和基于寄存器的指令集区别
- java虚拟机和Dalvik虚拟机的区别,DVM为什么要设计成基于寄存器的!
- 于堆栈的(Stack-based ) 和基于寄存器(Register-based) 的虚拟机区别
- 基于jquery的 has() 、 find() 与 filter() 的区别
- 2016.7.14 generator基于注解和基于xml自动生成代码的区别
- 推荐系统-通过数据挖掘算法协同过滤讨论基于内容和用户的区别
- 基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别。
- 基于SpringMVC的拦截器(Interceptor)和过滤器(Filter)的区别与联系
- 基于FLV视频的RTMP和HTTP区别
- 基于request.getAttribute与request.getParameter的区别详解
- 基于c# 类、接口、结构的联系与区别详解
- 基于栈和基于寄存器的Java虚拟机
- 自动、静态、 寄存器、易失变量的区别 .
- 基于Sizeof与Strlen的区别以及联系的使用详解
- 基于寄存器的VM
- 基于Java的打包jar、war、ear包的作用与区别详解
- 基于过程和面向对象编程的区别
- 面向对象和基于对象的区别
- 值类型与引用类型的区别(基于C#)