linux动态二进制翻译,仿真:解释和二进制翻译

仿真就是在一个具有某种接口和功能的系统或子系统上实现另一种与之具有不同接口和功能的系统或子系统的过程。指令集仿真可以使用多种方法来实现,这需要不同数量的计算资源,并且提供不同的性能和可移植性。其中的一个极端就是直接的解释技术,另一个极端就是二进制翻译。解释包括取一条源指令,对其进行分析,执行需要的操作,再取下一条源指令这样一个循环过程,所有工作都是由软件完成的。另一方面,二进制解释试图分摊取值和...
摘要由CSDN通过智能技术生成

2b3445c1f8e42fb34f9e0210246bc60d.png

仿真就是在一个具有某种接口和功能的系统或子系统上实现另一种与之具有不同接口和功能的系统或子系统的过程。

指令集仿真可以使用多种方法来实现,这需要不同数量的计算资源,并且提供不同的性能和可移植性。其中的一个极端就是直接的解释技术,另一个极端就是二进制翻译。解释包括取一条源指令,对其进行分析,执行需要的操作,再取下一条源指令这样一个循环过程,所有工作都是由软件完成的。另一方面,二进制解释试图分摊取值和分析的代价,它将源指令块翻译为目标指令块,并且将翻译后的代码保存起来以便反复使用。

其中使用了表驱动法的技术,并对其进行了某些扩展和优化

基本的解释

狭义上,一个解释器程序在一台实现源ISA的及其的完整结构状态上仿真运行,这些状态包括所有的结构寄存器和主存。客户机内存的印象,包括程序代码和程序数据,被保存在有解释器维护的内存区中。解释器的内存中还保存着一张称之为上下文块的表,它包含了源结构状态的不同部件。

一个简单的解释器是通过逐条指令地执行源程序来运行的,它根据指令读取并修改源状态。这样的解释器常被称为译码分派(decode-and-dispatch)解释器,因为它是围绕一个主循环来组织的,即译码一条指令,然后将其分派给基于指令的解释历程。

线索解释

译码-分派解释器的主分派循环包含许多直接和间接的分支指令。这些分支依靠硬件实现,它们往往会降低性能,特别是在它们难以被

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值