x86虚拟机设计之CISC指令解析

一、指令分类

CISC指令集的长度不是固定的,可以按照指令的复杂度对代码进行分类。

 

针对x86指令集,有些短指令的翻译十分简单(比如不需要解析Ev等字段),可以在解析之后迅速翻译,可以按照以下规则进行分类:

1、有没有前缀字节。

2、单字节指令。

3、简单的操作码,比如仅仅是寄存器操作。

4、复杂的指令,多操作码可以对相似的操作进行归类。

 

我觉得switch case是比较好的方法,即可以将指令进行分类又可以合并复杂指令的相似操作。

 

二、二进制翻译中的内嵌C语言

1、指令比较复杂,需要很多临时寄存器。

2、host不支持target的指令,比如arm没有除法指令。

3、和硬件的关系比较密切,需要在汇编中调用C函数,比如 ioport操作。


三、关于中间代码的利弊分析

优点:

        有利于代码的优化。

        有利于进行跨平台的设计。

缺点

         有损性能。

采用三地址法来描述一个中间代码


 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值