发明名称 指令重组方法及装置
摘要 本发明提供一种运行时指令重组方法,包括:步骤1、缓存指令运行环境;获取栈中保存的跳转指令的地址和参数,计算下一条即将运行的指令地址,该地址为第零地址;将第一地址设置为第零地址;步骤2、利用第一地址来查找地址对应表,如果找到记录,恢复所缓存的指令运行环境,并跳转到找到的对应地址继续执行,完成本次指令重组;步骤3、如果没有找到记录,从第一地址开始获取待执行的机器指令片段,指令片段的结尾为跳转指令,跳转指令所在地址为第三地址;步骤4、从第一地址开始,将机器码进行反汇编,并将反汇编结果通过一个词法分析器进行处理,生成重组后的汇编代码,直到第三地址为止。
申请公布号 CN103677746B 申请公布日期 2016.06.29
申请号 CN201210327228.2 申请日期 2012.09.06
申请人 中天安泰(北京)信息技术有限公司 发明人 汪家祥;杨潇
分类号 G06F9/30(2006.01)I 主分类号 G06F9/30(2006.01)I
代理机构 代理人
主权项 一种运行时指令重组方法,包括:步骤1、缓存指令运行环境;获取栈中保存的第一跳转指令的地址和参数,计算下一条即将运行的指令地址,所述即将运行的指令地址为第零地址;将第一地址设置为第零地址;步骤2、利用第一地址来查找地址对应表,如果找到记录,恢复所缓存的指令运行环境,并跳转到找到的对应地址继续执行,完成本次指令重组;步骤3、如果没有找到记录,从第一地址开始获取待执行的机器指令片段,指令片段的结尾为第二跳转指令,第二跳转指令所在地址为第三地址;步骤4、从第一地址开始,将机器码进行反汇编,并将反汇编结果通过一个词法分析器进行处理,生成重组后的汇编代码,直到第三地址为止;步骤5、判断第三地址处的第二跳转指令的目标代码是否可以进一步处理,如果可以,将第一地址设置为第三地址或第三地址的第二跳转指令的目标地址,重新开始执行步骤3;步骤6、如果不可以,在生成的重组后的汇编代码最后,加入压栈指令记录当前第三地址的值和操作数,并在压栈指令之后加入跳转至重组平台开始的指令;步骤7、将生成的重组后的汇编代码通过汇编器生成对应的机器码,并存储于重组地址空间中分配出的地址,该地址为第二地址;将第二地址和第零地址以对应地址对的形式存储于地址对应表中;和步骤8、恢复环境,并跳转到第二地址继续执行。
地址 100071 北京市丰台区小屯路89号航天标准大厦南楼