扩充指令的模拟方法和装置制造方法及图纸

技术编号:14002653 阅读:49 留言:0更新日期:2016-11-16 10:38
本发明专利技术提供一种扩充指令的模拟方法和装置,其中,该方法包括:根据二进制可执行程序中的用户态软中断指令,确定与扩充指令对应的指令模拟程序的内存位置,其中,用户态软中断指令与二进制可执行程序中的扩充指令对应;根据内存位置,调用并执行与扩充指令对应的指令模拟程序。不需要改变二进制可执行程序中的指令条数,就可以对二进制可执行程序进行模拟执行,进而不会导致二进制可执行程序中的各指令的地址发生变化,无需对二进制可执行程序的代码程序重新进行扫描,减少了对二进制可执行程序中的扩充指令进行模拟执行的时间,提高了模拟执行的效率。

【技术实现步骤摘要】

本专利技术涉及计算机技术以及处理器技术,尤其涉及一种扩充指令的模拟方法和装置
技术介绍
在处理器的升级和更新过程中,需要对二进制可执行程序中的指令进行扩充,从而形成了扩充指令。在对处理器的指令集中的指令进行扩充之后,需要对二进制可执行程序的扩充指令进行模拟执行,模拟执行的内容包括了对扩充指令的模拟、对扩充指令的验证等工作。现有技术中,在对二进制可执行程序的扩充指令进行测试的时候,需要将多条测试代码或者多条测试指令放置到扩充指令的位置处,然后重新对二进制可执行程序的代码程序进行扫描,重新记录二进制可执行程序的各指令的位置,然后执行二进制可执行程序的所有指令,进而对扩充指令进行测试。然而现有技术中,由于多条测试代码或者多条测试指令被放置到扩充指令的位置处,从而会该改变二进制可执行程序中的指令条数以及地址,从而在对二进制可执行程序的各扩充指令进行测试之前,需要先对二进制可执行程序的代码程序进行扫描,再完成对各扩充指令的测试过程,进而增加了对二进制可执行程序的扩充指令进行测试的时间,降低了测试的效率。
技术实现思路
本专利技术提供一种扩充指令的模拟方法和装置,用以解决现有技术中在对二进制可执行程序的各扩充指令进行测试之前,需要先对二进制可执行程序的代码程序进行扫描,再完成对各扩充指令的测试过程,进而增加了对二进制可执行程序的扩充指令进行测试的时间,降低了测试的效率的问题。本专利技术的一方面是提供一种扩充指令的模拟方法,包括:根据二进制可执行程序中的用户态软中断指令,确定与扩充指令对应的指令模拟程序的内存位置,其中,所述用户态软中断指令与二进制可执行程序中的扩充指令对应;根据所述内存位置,调用并执行与扩充指令对应的指令模拟程序。本专利技术的另一方面是提供一种扩充指令的模拟装置,包括:确定模块,用于根据二进制可执行程序中的用户态软中断指令,确定与扩充指令对应的指令模拟程序的内存位置,其中,所述用户态软中断指令与二进制可执行程序中的扩充指令对应;执行模块,用于根据所述内存位置,调用并执行与扩充指令对应的指令模拟程序。本专利技术的又一方面是提供一种扩充指令的模拟装置,包括:测试子装置,第一寄存器和第二寄存器,其中,测试子装置分别与所述第一寄存器和所述第二寄存器连接;所述测试子装置包括:指令集模拟器和处理器;所述指令集模拟器,用于将二进制可执行程序中的扩充指令替换为用户态软中断指令;所述处理器,用于在根据二进制可执行程序的执行次序,执行至所述用户态软中断指令时,根据第一寄存器中存储的指令集模拟器的内存位置,确定所述指令集模拟器,其中,所述指令集模拟器包括与各扩充指令对应的指令模拟程序;所述指令集模拟器,还用于在确定所述指令集模拟器之后,调取并执行与扩充指令对应的指令模拟程序。本专利技术通过根据二进制可执行程序中的用户态软中断指令,确定与扩充指令对应的指令模拟程序的内存位置,其中,用户态软中断指令与二进制可执行程序中的扩充指令对应;根据内存位置,调用并执行与扩充指令对应的指令模拟程序。从而由于各扩充指令已被替换为与其对应的用户态软中断指令,而用户态软中断指令指向了指令集模拟器中的与该扩充指令对应的指令模拟程序,进而不需要改变二进制可执行程序中的指令条数,就可以对二进制可执行程序进行模拟执行,进而不会导致二进制可执行程序中的各指令的地址发生变化,无需对二进制可执行程序的代码程序重新进行扫描,减少了对二进制可执行程序中的扩充指令进行模拟执行的时间,提高了模拟执行的效率。附图说明图1为本专利技术实施例一提供的扩充指令的模拟方法的流程图;图2为本专利技术实施例二提供的扩充指令的模拟方法的流程图;图3为本专利技术实施例三提供的扩充指令的模拟装置的结构示意图;图4为本专利技术实施例四提供的扩充指令的模拟装置的结构示意图;图5为本专利技术实施例五提供的扩充指令的模拟方法的流程图;图6为本专利技术实施例六提供的扩充指令的模拟方法的流程图;图7为本专利技术实施例七提供的扩充指令的模拟装置的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1为本专利技术实施例一提供的扩充指令的模拟方法的流程图,如图1所示,本实施例的方法包括:步骤101、根据二进制可执行程序中的用户态软中断指令,确定与扩充指令对应的指令模拟程序的内存位置,其中,用户态软中断指令与二进制可执行程序中的扩充指令对应。在本实施例中,具体的,在处理器的升级和更新过程中,需要对处理器中的二进制可执行程序中的指令进行扩充,处理器中包括了多个二进制可执行程序,每一个二进制可执行程序中包括了多条指令。将二进制可执行程序中的扩充后的指令称为扩充指令。在对处理器的二进制可执行程序中的指令进行扩充之后,需要对二进制可执行程序中的扩充指令进行测试。将处理器的二进制可执行程序进行备份之后,由于已经将二进制可执行程序中的各扩充指令分别对应了各自的指令模拟程序,且各指令模拟程序并没有放入到二进制可执行程序中,而是将与扩充指令对应的指令模拟程序放入到了内存中,从而与各扩充指令分别一一对应的指令模拟程序是具有内存位置的。此时,由于每一条扩充指令已经被替换为每一条用户态软中断指令,从而二进制可执行程序中的指令条数,以及二进制可执行程序的各指令的地址都不会发生变化。执行处理器的二进制可执行程序,由于二进制可执行程序本身具有执行次序,从而可以根据二进制可执行程序的执行次序,去执行二进制可执行程序;在执行至二进制可执行程序中的一条用户态软中断指令的时候,由于与各扩充指令分别一一对应的指令模拟程序是具有内存位置的,同时扩充指令、用户态软中断指令、指令模拟程序中三者是一一对应的,从而可以确定与当前用户态软中断指令对应的扩充指令的指令模拟程序的内存位置。举例来说,一个指令模拟程序的内存位置为0xf010 0000,根据二进制可执行程序的执行次序执行二进制可执行程序,在执行到用户态软中断指令时,可以确定指令模拟程序的内存位置0xf010 0000。步骤102、根据内存位置,调用并执行与扩充指令对应的指令模拟程序。在本实施例中,具体的,根据步骤101中确定出的指令模拟程序的内存位置,可以确定出与当前用户态软中断指令对应的扩充指令的指令模拟程序,然后调用与扩充指令对应的该指令模拟程序,进而执行与扩充指令对应的该指令模拟程序。此时,可以完成对与当前用户态软中断指令对应的扩充指令的测试。对于二进制可执行程序中的每一条用户态软中断指令,在根据二进制可执行程序的执行次序去执行二进制可执行程序,在执行至二进制可执行程序中的每一条用户态软中断指令的时候,都可以采用步骤101、步骤102的方法,完成调用并执行与每一条扩充指令对应的指令模拟程序的过程,进而对二进制可执行程序中的每一条扩充指令完成测试。本实施例通过根据二进制可执行程序中的用户态软中断指令,确定与扩充指令对应的指令模拟程序的内存位置,其中,用户态软中断指令与二进制可执行程序中的扩充指令对应;根据内存位置,调用并执行与扩充指令对应的指令模拟程序。从本文档来自技高网...
扩充指令的模拟方法和装置

【技术保护点】
一种扩充指令的模拟方法,其特征在于,包括:根据二进制可执行程序中的用户态软中断指令,确定与扩充指令对应的指令模拟程序的内存位置,其中,所述用户态软中断指令与二进制可执行程序中的扩充指令对应;根据所述内存位置,调用并执行与扩充指令对应的指令模拟程序。

【技术特征摘要】
1.一种扩充指令的模拟方法,其特征在于,包括:根据二进制可执行程序中的用户态软中断指令,确定与扩充指令对应的指令模拟程序的内存位置,其中,所述用户态软中断指令与二进制可执行程序中的扩充指令对应;根据所述内存位置,调用并执行与扩充指令对应的指令模拟程序。2.根据权利要求1所述的方法,其特征在于,在所述根据二进制可执行程序中的用户态软中断指令,确定与扩充指令对应的指令模拟程序的内存位置之前,还包括:接收替换指令,所述替换指令中包括各扩充指令以及与各扩充指令一一对应的用户态软中断指令;根据替换指令,将各扩充指令分别替换为与各扩充指令一一对应的用户态软中断指令。3.根据权利要求1所述的方法,其特征在于,所述用户态软中断指令中还包括:第一寄存器标识;在所述根据所述内存位置,调用并执行与扩充指令对应的指令模拟程序之前,还包括:根据所述用户态软中断指令,将所述用户态软中断指令的程序计数器PC值存储至与所述第一寄存器标识对应的寄存器中;相应的,在所述根据所述内存位置,调用并执行与扩充指令对应的指令模拟程序之后,还包括:根据所述用户态软中断指令的PC值,确定并模拟执行所述二进制可执行程序中与用户态软中断指令的PC值对应的指令。4.根据权利要求1所述的方法,其特征在于,在所述根据二进制可执行程序中的用户态软中断指令,确定与扩充指令对应的指令模拟程序的内存位置之前,还包括:接收第一存储指令,所述第一存储指令包括第二寄存器标识;根据所述第一存储指令,将具有与各扩充指令对应的指令模拟程序的指令集模拟器存储至内存中,并确定指令集模拟器在内存中的内存位置之后,将所述内存位置存储至与所述第二寄存器标识对应的寄存器中。5.根据权利要求1-4任一项所述的方法,其特征在于,在所述根据二进制可执行程序中的用户态软中断指令,确定与扩充指令对应的指令模拟程序的内存位置之前,还包括:接收第二存储指令,所述第二存储指令包括第三寄存器标识;根据所述第二存储指令,将各扩充指令的各指令信息,分别存储至与所述第三寄存器标识对应的寄存器中。6.根据权利要求5所述的方法,其特征在于,在所述根据所述内存位置,调用并执行与扩充指令对应的指令模拟程序之后,还包括:接收清除指令,所述清除指令包括所述第三寄存器标识;根据所述清除指令,清除与所述第三寄存器标识对应的寄存器中的各指令信息。7.一种扩充指令的模拟装置,其特征在于,包括:确定模块,用于根据二进制可执行程序中的用户态软中断指令,确定与扩充指令对应的指令模拟程序的内存位置,其中,所述用户态软中断指令与二进制可执行程序中的扩充指令对应;执行模块,用于根据所述内存位置,调用并执行与扩充指令对应的指令模拟程序。8.根据权利要求7所述的装置,其特征在于,还包括:替换模块,用于在所述确定模块根据二进制可执行程序中的用户态软中断指令,确定与扩充指令对应的指令模拟程序的内存位置之前,接收替换指令,所述替换指令中包括各扩充指令以及与各扩充指令一一对应的用户态软中断指令;根据替换指令,将各扩充指令分别替换为与各扩充指令一一对应的用户态软中断指令。9.根据权利要求7所述的装置,其特征在于,所述用户态软中断指令中还包括:第一寄存器标识;所述扩充指令的模拟装置,还包括:第一存储模块,用于在所述执行模块根据所述内存位置,调用并执行与扩充指令对应的指令模拟程序之前,根据...

【专利技术属性】
技术研发人员:薛双百屈秋雯
申请(专利权)人:龙芯中科技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1