[发明专利]二进制翻译中的字节序调整方法有效
| 申请号: | 201010300018.5 | 申请日: | 2010-01-04 |
| 公开(公告)号: | CN101763242A | 公开(公告)日: | 2010-06-30 |
| 发明(设计)人: | 管海兵;梁阿磊;朱彤;刘博;杨辉兵 | 申请(专利权)人: | 上海交通大学 |
| 主分类号: | G06F7/76 | 分类号: | G06F7/76;G06F9/30 |
| 代理公司: | 上海交达专利事务所 31201 | 代理人: | 王锡麟;王桂忠 |
| 地址: | 200240 *** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 二进制 翻译 中的 字节 调整 方法 | ||
1.一种二进制翻译中的字节序调整方法,其特征在于,包括以下步骤:
第一步,动态二进制翻译系统的执行引擎加载源程序可执行映像,将各个程序段的内容进行字节序调整,同时调整加载进来的参数个数、参数内容和环境变量;
所述的字节序调整是指:动态二进制翻译系统的执行引擎将MIPS体系结构的可执行文件映像加载到动态二进制翻译系统内存空间中,并读取代码段入口地址,加载过程中需对源程序的各段进行字节序翻转,源机器平台和目标机器平台的字节顺序不同,则源程序映像的.text段和.bss段,在加载的时候都需要进行字节序的翻转,设置堆栈时,压入的参数,即参数个数和参数内容和环境变量也要做字节序翻转处理;
第二步,修改表示内存访问的中间指令的有效地址,使修改后的有效地址的表达符合源程序内存访问指令的语义,以在内存中加载或存储正确的数据;
所述的修改后的有效地址等于,内存中数据的最高地址与数据的最低地址的和,减去访存指令操作的字节数与源程序要访问的有效地址的和;
所述的修改后的有效地址适用于地址以字为单位进行分配的体系结构,并且存储器访问都是对齐的,即:半字从双字节的边界加载和存储,字从四字节的边界加载和存储,根据表示内存访问的中间指令的参数求出该访存指令访问的有效地址,然后更新有效地址以完成中间指令修改,具体过程为:
1)如果访问的是字节数据,将有效地址和4做求模运算得i,如果i为0,则将该有效地址加3;如果i为1,则将该有效地址加1;如果i为2,则将该有效地址减1;如果i为3,则将该有效地址减3;
2)如果访问的是半字数据,将有效地址和4做求模运算得i,如果i为0,则将该有效地址加2;如果i为2,则将该有效地址减2;
3)如果访问的是字数据,无需做地址转换;
第三步,前端解码器将源程序指令翻译为中间指令,然后将生成的中间指令加入到构建的中间指令基本块中,直到发生直接跳转或系统调用,则结束当前基本块的构造,并将该基本块发送到后端执行。
2.根据权利要求1所述的二进制翻译中的字节序调整方法,其特征是,所述的动态二进制翻译系统包括:前端解码器、中端优化器、后端编码器和中间指令集,其中:前端解码器与中间指令集相连传输源程序,中间指令集和中端优化器相连传输中间代码信息,中端优化器与后端编码器相连传输优化后的中间代码信息,后端编码器输出编码后的代码信息。
3.根据权利要求2所述的二进制翻译中的字节序调整方法,其特征是,所述的动态二进制翻译系统是昆士兰大学的UQDBT系统,或者是弗吉尼亚大学的strata系统,或者是上海交通大学的CrossBit系统。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010300018.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:半导体元器件自动分离机
- 下一篇:温度补偿衰减器





