发明名称 | 二进制翻译中间接跳转指令的翻译方法及其系统 | ||
摘要 | 本发明涉及二进制翻译中间接跳转指令的翻译方法及系统,方法包括:步骤1,在反汇编到间接跳转指令时,根据反汇编出的源指令序列判断所述间接跳转指令是否为多分支语句或虚函数调用,如果是则进行标记,获得被标记的间接跳转指令的源跳转表;步骤2,在翻译时,将被标记的间接跳转指令翻译为根据待构建的所述被标记的间接跳转指令的目标跳转表的内容进行跳转的指令,为所述目标跳转表预留重定位项;步骤3,翻译完所述被标记的间接跳转指令后,根据所述间接跳转指令的源跳转表构建所述间接跳转指令的目标跳转表;步骤4,将构建的所述目标跳转表的地址写入所述重定位项。本发明能够减少了访问内存的开销,提高了二进制翻译的效率。 | ||
申请公布号 | CN101706734B | 申请公布日期 | 2013.08.14 |
申请号 | CN200910237389.0 | 申请日期 | 2009.11.10 |
申请人 | 中国科学院计算技术研究所 | 发明人 | 武成岗;王文文 |
分类号 | G06F9/45(2006.01)I | 主分类号 | G06F9/45(2006.01)I |
代理机构 | 北京律诚同业知识产权代理有限公司 11006 | 代理人 | 祁建国;梁挥 |
主权项 | 一种二进制翻译中间接跳转指令的翻译方法,其特征在于,包括:步骤1,在反汇编到间接跳转指令时,根据反汇编出的源指令序列判断所述间接跳转指令是否为多分支语句或虚函数调用,如果是则进行标记,获得被标记的间接跳转指令的源跳转表;步骤2,在翻译时,将被标记的间接跳转指令翻译为根据待构建的所述被标记的间接跳转指令的目标跳转表的内容进行跳转的指令,为所述目标跳转表预留重定位项;步骤3,翻译完所述被标记的间接跳转指令后,根据所述间接跳转指令的源跳转表构建所述间接跳转指令的目标跳转表;步骤4,将构建的所述目标跳转表的地址写入所述重定位项;所述步骤2进一步为,步骤31,翻译计算源跳转表的索引的指令,在索引所述目标跳转表时使用所述索引;步骤32,将被标记的间接跳转指令翻译为根据所述索引从待构建的所述间接跳转指令的目标跳转表中获得对应表项,并按所述表项的内容进行跳转的指令;步骤33,为所述目标跳转表预留重定位项。 | ||
地址 | 100080 北京市海淀区中关村科学院南路6号 |