x86虚拟机设计之CISC指令解析
来源:互联网 发布:硅藻泥 知乎 编辑:程序博客网 时间:2024/05/18 14:24
一、指令分类
CISC指令集的长度不是固定的,可以按照指令的复杂度对代码进行分类。
针对x86指令集,有些短指令的翻译十分简单(比如不需要解析Ev等字段),可以在解析之后迅速翻译,可以按照以下规则进行分类:
1、有没有前缀字节。
2、单字节指令。
3、简单的操作码,比如仅仅是寄存器操作。
4、复杂的指令,多操作码可以对相似的操作进行归类。
我觉得switch case是比较好的方法,即可以将指令进行分类又可以合并复杂指令的相似操作。
二、二进制翻译中的内嵌C语言
1、指令比较复杂,需要很多临时寄存器。
2、host不支持target的指令,比如arm没有除法指令。
3、和硬件的关系比较密切,需要在汇编中调用C函数,比如 ioport操作。
三、关于中间代码的利弊分析
优点:
有利于代码的优化。
有利于进行跨平台的设计。
缺点
有损性能。
采用三地址法来描述一个中间代码
- x86虚拟机设计之CISC指令解析
- x86虚拟机设计之条件码生成
- x86虚拟机设计之动态翻译块
- x86 LES指令解析
- X86 LDS指令解析
- 逃离x86架构-----CPU体系结构CISC与RISC之争
- 逃离x86架构-----CPU体系结构CISC与RISC之争
- 逃离x86架构-----CPU体系结构CISC与RISC之争
- 逃离x86架构-----CPU体系结构CISC与RISC之争
- 逃离x86架构-----CPU体系结构CISC与RISC之争
- 逃离x86架构-----CPU体系结构CISC与RISC之争
- 4. x86常见指令解析
- x86虚拟机设计之自引用和自修改代码
- 计算机组成复习 X86 CISC
- 体系结构: RISC, CISC, x86, ARM, MIPS
- 体系结构: RISC, CISC, x86, ARM, MIPS
- 栈式虚拟机中间代码编译为x86指令
- X86指令
- 工具分享:JsMockito (JavaScript 单元测试工具)
- GetLastError()返回值的意义
- 微软等公司数据结构+算法面试100题(第1-100题)首次完整亮相
- Java命名规范
- 一个现金流量表的代码
- x86虚拟机设计之CISC指令解析
- hdu3940
- java web java网站开发相对路径绝对路径
- 从今以后我一个人唱悲伤情歌:伤感的QQ空间日志
- 摄氏温度转华氏温度
- LoadRunner调用Java程序—性能测试
- HP LoadRunner 11.00 尝鲜
- 共享的艺术之:Samba服务的搭建
- Ubuntu 12.04创建桌面启动器方法