首页> 中国专利> 基于用户描述的汇编器及其实现方法

基于用户描述的汇编器及其实现方法

摘要

一种计算机技术领域的基于用户描述的汇编器及其实现方法,其中:ISA描述模块读入用户描述的指令集体系结构信息,并从用户的描述信息中提取出ISA数据至结构化信息自动配置模块;结构化信息自动配置模块将数据组织成结构化的ISA信息并输出至ISA信息库管理模块;ISA信息库管理模块将该结构化的指令结构信息存放入内存中,并将汇编过程中需要的ISA信息传递给汇编功能处理模块;汇编功能模块读入汇编源文件,并从ISA信息库管理模块得到需要的ISA信息,用于对汇编源文件的处理,最后生成相应的二进制代码文件。本发明还提供上述的汇编器的生成方法,可方便、直观的根据用户对ISA描述,且无需重复编译而即时的生成相应的汇编功能的汇编器。

著录项

  • 公开/公告号CN101118498A

    专利类型发明专利

  • 公开/公告日2008-02-06

    原文格式PDF

  • 申请/专利权人 上海交通大学;

    申请/专利号CN200710045888.0

  • 发明设计人 邹耀;马强;刘佩林;

    申请日2007-09-13

  • 分类号G06F9/45(20060101);

  • 代理机构31201 上海交达专利事务所;

  • 代理人王锡麟;王桂忠

  • 地址 200240 上海市闵行区东川路800号

  • 入库时间 2023-12-17 19:41:21

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-08-31

    未缴年费专利权终止 IPC(主分类):G06F9/45 授权公告日:20090916 终止日期:20170913 申请日:20070913

    专利权的终止

  • 2009-09-16

    授权

    授权

  • 2008-04-02

    实质审查的生效

    实质审查的生效

  • 2008-02-06

    公开

    公开

说明书

技术领域

本发明涉及一种计算机技术领域的系统及其实现方法,具体是一种基于用户描述的汇编器及其实现方法。

背景技术

汇编器是编译系统中重要的组成部分,其主要功能是将用汇编语言编写的源程序转换成二进制形式的目标文件。汇编器的输入为汇编语言程序,这些程序可以是编译器的输出结果,也可能是手写的汇编语言程序。汇编器的输出为二进制的目标文件。

现有的汇编器的设计与实现中,对于不同的指令集体系结构(以下简称ISA)就要开发不同的汇编器以满足不同处理器的要求,这样使得开发新的处理器的时候,就要重新开发与之相应的汇编器。当前,汇编器一般随相应的处理器的开发而协同开发。不同的处理器在指令字长,指令编码方式,寄存器设置等方面都有所不同,使得汇编器在实现和结构上有很大的不同。另外,因为设计思想的差异也会产生的汇编器在实现和方法上的不同。处理器的配置不同以及设计思想的不同而造成了不同ISA的汇编器在结构和实现方法上的差异性。由于这种差异性的存在,对每一种新的ISA或者对原有的ISA进行改进和扩展时,就要同时开发与之相适应的汇编器。汇编器的开发一般具有较高的复杂度和较大的工作量,需要花费较长的时间和较多的精力。在整个编译系统中,汇编器是必不可缺的部分,所以开发一种可以根据用户对某一种ISA的描述而即时产生相应的汇编功能的汇编器,以显著的缩短开发周期,减少工作量和精力的投入,对处理器以及其相应编译系统的开发就具有至关重要的意义。

经对现有技术的文献检索发现,坦斯利卡公司于2000年2月4号向中国专利局申请的专利“用于设计可配置的处理器的自动处理器产生系统及其方法”(专利申请号CN00812731)中提到了基于坦斯利卡公司的配置方法的可配置汇编器,该项技术使用坦斯利卡公司开发的指令集体系定义语言对汇编器进行配置,这种方法也可以实现针对不同的ISA生成相应的汇编装置。但使用者使用该公司的可配置汇编器时,必先学会使用其指令集体系描述语言,要生成功能比较完备的指令集体系,需要先花去不小的工作量,以便较为熟练的掌握这种指令集体系定义语言。而且这种语言在对ISA描述时比较抽象,不易被用户所掌握,不具备描述指令集体系结构的简洁性和直观性。同时,坦斯利卡公司的相关专利中,根据其定义语言的ISA将会生成相应的代码文件,然后加入到与ISA信息无关的代码文件中去编译,最后生成汇编器。这样,每次生成不同ISA的汇编器就要重新编译一次,使得在开发过程中花费了比较多的时间在编译过程上。尤其在对ISA做修改的时候,一点微小的修改都要花费大量的时间进行编译。这种方法无疑增加了开发过程的负担。综上,该技术所述的可配置汇编器,其提供给用户的描述方法过于复杂和抽象,不易掌握;每次生成不同ISA的汇编器就要重新编译一次,花费了较多的编译时间。

发明内容

本发明针对现有技术的不足,提出了一种基于用户描述的汇编器及其实现方法,使其可以方便、直观的根据用户对ISA描述,并且无需重复编译而即时的生成相应的汇编功能的汇编器,以大大减少开发与新的指令集体系结构相对应的汇编器的开发时间和开发难度。

本发明是通过以下技术方案实现的:

本发明所述的基于用户描述的汇编器,包括:ISA描述模块,结构化信息自动配置模块,ISA信息库管理模块,以及汇编功能处理模块。所述ISA描述模块读入用户描述的指令集体系结构信息,并从用户的描述信息中提取出ISA数据至结构化信息自动配置模块;所述结构化信息自动配置模块将数据组织成结构化的ISA信息并输出至ISA信息库管理模块;所述ISA信息库管理模块将该结构化的指令结构信息存放入内存中以完成ISA的定义,并将汇编过程中需要的ISA信息传递给汇编功能处理模块;所述汇编功能模块读入汇编源文件,并从ISA信息库管理模块得到需要的ISA信息,用于对汇编源文件的处理,最后生成相应的二进制代码文件。

所述的ISA描述模块中,用户只需要将ISA信息按照规范填入规范化的表格就可完成对ISA的描述,具体使用的表格包括:指令类型表,助记符编码表,后缀编码表,操作数编码表,一般目的寄存器编码表和特殊目的寄存器表。其中:所述的指令类型表用于描述ISA的不同指令类型的信息;所述的助记符编码表用于描述属于某一指令类型的指令助记符的二进制编码信息;所述的后缀编码表用于描述属于某一指令类型的指令所使用的后缀的二进制编码信息;所述的操作数编码表用于描述属于某一指令类型的指令所使用的操作数的二进制编码信息;所述的一般目的寄存器表用于描述该ISA使用的一般目的寄存器的信息;所述的特殊目的寄存器表用于描述该ISA使用的特殊目的寄存器的信息;

所述的结构化信息自动配置模块中,将含有ISA相关信息的基本结构组织成结构化的定义,每一个ISA指令类型都将对应一个指令结构,用于描述该类型指令的所有信息。该类型指令的指令结构中的操作码属性为一个操作码结构,该操作码结构的指令助记符名称列表记录了属于该指令类型的所有指令助记符名称,指令助记符编码列表按照指令助记符名称列表中助记符的顺序记录了指令助记符的编码信息,后缀列表属性对应了一组指令操作数结构用来记录该指令类型所使用的后缀信息。指令结构的操作数属性对应了一组指令操作数结构用来记录该指令类型所使用的操作数信息。所用的二进制编码信息都保存在指令编码通用结构中。

所述的ISA信息库管理模块,包括ISA定义子模块和指令集体系搜索子模块。所述的ISA定义子模块跟据由结构化信息自动配置模块传输来的ISA代码信息的大小和结构,动态申请内存以存放这些代码信息,并根据上段所述的本发明定义的通用的ISA结构方法中的ISA定义方法实现对ISA的定义;所述的指令集体系搜索子模块按照汇编功能处理模块的需要搜索内存中的定义的ISA,并将需要的信息输出给汇编功能处理模块。

所述的汇编功能处理模块,用于对汇编源文件执行实际的汇编功能,这个模块不包含ISA的相关信息,在其执行汇编过程中,ISA的相关信息将通过向ISA信息库管理模块获得。该模块从汇编源文件中读入读取汇编指令,并通知ISA信息库管理模块搜索内存中的ISA的定义,从中提取需要的信息,按照上述的本发明定义的通用的ISA结构方法中的ISA解析的方法将汇编指令解析出来,并完成二进制指令代码的编码,最后输出二进制指令代码文件。

本发明所述的基于用户的汇编器的实现方法,包括以下步骤:

第一步,编译本发明所述的基于用户描述的汇编器的源程序;

第二步,用户使用本发明定义的一种简洁,易行并且直观的对ISA的描述方法对ISA进行描述,用户只需要将ISA信息按照规范填入规范化的表格就可完成对ISA的描述;

第三步,将用户对ISA的描述中的相关数据提取出来;

第四步,将提取出来的ISA相关数据组织成一种高度通用的,可扩展的,能够提供良好的接口以满足指令的扩展需求,同时有利于高效的汇编器指令解析和编码的结构化的ISA信息结构;

第五步,将组织后的ISA信息,按照其大小和结构,动态的存放入内存中,采用步骤四中所述的基于基本结构的指令定义的方法完成对ISA的定义;

第六步,读取汇编源代码并对每条汇编指令做逐一的汇编处理,从汇编指令中获取相关的ISA线索信息;

第七步,根据线索信息从内存中的ISA定义中提取需要的ISA信息;

第八步,根据ISA信息,采用步骤四中所述的基于基本结构和指令定义的指令解析的方法完成对汇编指令的解析并最终完成对二进制指令的编码;

第九步,完成汇编源代码中所有的汇编指令的处理,输出二进制代码文件;

第十步,若要重新生成新的ISA的汇编器,则转至第二步重新开始,即可完成相应的汇编功能,无需重新编译。

第二步所述的规范化的表格,包括:指令类型表,助记符编码表,后缀编码表,操作数编码表,一般目的寄存器编码表和特殊目的寄存器表。一套指令集体系结构描述只有一个指令类型表,一个一般目的寄存器表,一个特殊目的寄存器表。指令类型表中的每一个指令类型将对应一个助记符编码表,一个后缀编码表,一个操作数编码表,用来描述该类型的指令的操作码和操作数的信息。

其中:

指令类型表用于描述ISA的不同指令类型的信息,包括:指令类型的名称,该类型指令所带的操作数的数量,能使用的后缀数目,指令类型的标识,操作数的类型,该指令类型使用的前缀六个属性。

助记符编码表用于描述属于某一指令类型的指令助记符的二进制编码信息,包括:助记符名称,每段助记符编码起始位置,每段的编码的长度,助记符编码被分割的段数,助记符的编码五个属性。

后缀编码表用于描述属于某一指令类型的指令所使用的后缀的二进制编码信息,包括:  后缀名称,每段后缀编码起始位置,每段的编码的长度,后缀编码被分割的段数,后缀的编码,该后缀所属的类型六个属性。

操作数编码表用于描述属于某一指令类型的指令所使用的操作数的二进制编码信息,包括:操作数的类型名称,每段操作数编码起始位置,每段的编码的长度,助记符编码被分割的段数,操作数的编码,立即数的值是否为相对于当前指令的偏移量标识,立即数的重定位的类型,立即数的特殊处理方式八个属性。立即数的值是否为相对于当前指令的偏移量标识,立即数的重定位的类型,立即数的特殊处理方式都和立即数的重定位有关,当操作数为寄存器时,这三项无效。

一般目的寄存器表用于描述该ISA使用的一般目的寄存器的信息,包括:寄存器的标识名,寄存器的起始编号,寄存器的终止编号,寄存器别名对应关系描述四个属性构成。

特殊目的寄存器表用于描述该ISA使用的特殊目的寄存器的信息,包括:特殊目的寄存器的名称,每段特殊目的寄存器编码起始位置,每段的编码的长度,特殊目的寄存器编码被分割的段数,特殊目的寄存器的编码五个属性构成。

第四步所述的结构化的ISA信息结构采用一种通用的可扩展ISA的结构方法,主要用于ISA的定义和ISA指令的解析。该方法包括一组用于指令定义和指令解析的基本结构,基于上述基本结构的指令定义的方法(即第五步中采用的方法),和基于上述基本结构和指令定义的指令解析的方法(即第八步中采用的方法)。在第四步中,数据将被组织成上述基本结构。

所述用于指令定义和指令解析的基本结构包括:指令结构,指令编码的通用结构,指令操作码结构和指令操作数结构,其中:

指令结构描述了属于同样类型的指令的全部信息。它包括:指令类型,操作码,操作数组,操作数数量,格式描述五个基本属性。其中,操作码属性为指令操作码结构,操作数组属性为指令操作数结构的数组。

指令编码通用结构描述和记录了域的位置以及域对应的具体机器编码。它包含了四个属性:域开始位置数组,域长度数组,域分段数量和域值。

指令操作码结构用于描述指令操作码信息,其属性包括:前缀名称,指令助记符名称列表,指令助记符编码列表,指令助记符名称列表长度,后缀列表,后缀类型个数。其中,指令助记符编码列表为指令编码的通用数据结构的数组,后缀列表为指令操作数结构的数组,用于描述后缀这种特殊的操作数。

指令操作数结构描述包括寄存器操作数,立即数操作数,特殊操作数和寻址方式等操作数的信息,其属性包括:类型定义,操作数名称列表,操作数编码列表,复合操作数指针,重定位类型,相对跳转标志。其中,操作数编码列表为指令编码的通用数据结构的数组。

第五步所述的基于基本结构的指令定义的方法,是指:将含有ISA相关信息的基本结构组织成结构化的定义。在该方法中,每一个ISA指令类型都将对应一个指令结构,用于描述该类型指令的所有信息。该类型指令的指令结构中的操作码属性为一个操作码结构,该操作码结构的指令助记符名称列表记录了属于该指令类型的所有指令助记符名称,指令助记符编码列表按照指令助记符名称列表中助记符的顺序记录了指令助记符的编码信息,后缀列表属性对应了一组指令操作数结构用来记录该指令类型所使用的后缀信息。指令结构的操作数属性对应了一组指令操作数结构用来记录该指令类型所使用的操作数信息。所用的二进制编码信息(包括指令助记符,后缀,操作数),都保存在指令编码通用结构中。

第八步所述的基于基本结构和指令定义的指令解析的方法,是指:对于每一条汇编指令,词法分析其操作码(包含指令助记符和后缀),操作数,并将分析得到的信息填充入基于基本结构的指令解析结构中去。该结构使用一个指令结构,将该汇编指令的操作码信息填充入指令结构的操作码属性所对应的操作码结构中去,同时将该汇编指令的操作数信息填充入指令结构的操作数属性所对应的一组操作数结构中去。根据指令助记符和操作数找到与该指令相符合的指令类型,根据指令类型查找符合该指令类型的指令定义表并确定操作码操作数的具体编码定义(以通用编码结构存放),填充入指令解析结构中去。依次扫描数据域编码中的通用编码结构完成最后的指令编码。

第十步所述的重新生成新的ISA的汇编器,其方法为:基于用户描述的ISA信息存放在内存中,从而在生成新的汇编功能的汇编器时,只需要把用户描述的相应的ISA指令信息结构化存放入内存供汇编过程使用,即可完成相应的汇编功能,而无需通过重新编译的方法生成汇编器,节省了开发过程中大量的编译时间。

与现有技术相比,本发明具有以下有益效果:本发明采用用户填写规范化的表格描述相关指令集体系结构,这种方法简单,易行,并且直观,只要了解ISA架构的信息,无需掌握复杂的描述语言,就可以方便的描述ISA。这些规范化的表格具有高度的通用性,满足现今各种指令集体系结构的描述要求。本发明采用了一种通用的可扩展的ISA结构,最大限度的支持现有的指令集体系结构的需求和设计思想,满足各种指令集体系结构的汇编器的开发需要,使得汇编器的开发时间和开发的劳动量大大下降。同时,在新的ISA汇编器的生成过程中,采用免编译的方法,节省了开发过程中大量的开发时间。

附图说明

图1基于用户描述的汇编器的结构示意图;

图2用于描述ISA的规范划的表格的结构示意图;

图3通用的可扩展ISA的结构方法中的基本结构的结构示意图;

图4通用的可扩展ISA的结构方法中的指令定义的方法的示意图;

图5通用的可扩展ISA的结构方法中的指令解析的方法的示意图;

具体实施方式

下面结合附图对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

如图1所示,本发明实施例汇编器包括:ISA描述模块,结构化信息自动配置模块,ISA信息库管理模块,以及汇编功能处理模块。其中ISA信息库管理模块又包括ISA定义子模块,和指令集体系搜索子模块。

ISA描述模块将读入用户描述的指令集体系结构信息,并输出从中提取出的相关数据至结构化信息自动配置模块;结构化信息自动配置模块将数据组织成结构化的ISA信息并输出至ISA信息库管理模块;ISA信息库管理模块中的ISA定义子模块将该结构化的指令结构信息存放入内存中,指令集体系搜索子模块在内存中的ISA定义信息中搜索汇编过程中需要的ISA信息,并传递给汇编功能处理模块;汇编功能模块读入汇编源文件,并从指令集体系库管理模块得到需要的ISA信息,用于对汇编源文件的处理,最后生成相应的二进制代码文件。

下面结合附图2~5,以本发明的装置和方法在开发ARM处理器的汇编指令集汇编器的应用为例,对本发明的技术方案做进一步的详细描述。ARM处理器具有32位的ARM指令集和16位的Thumb指令集,本实例中采用32位的ARM指令集开发其相应汇编功能的汇编器。过程叙述如下:

首先编译本发明所述的基于用户描述的汇编器的源程序,生成这部分源程序不包含具体的ISA信息。

如图2所示为用户对ISA进行描述时所填写的规范划的表格及这些表格之间的关系。用户需要将一个ISA的相关信息按照如下方式填写入这些表格中去。这些表格包括:指令类型表,助记符编码表,后缀编码表,操作数编码表,一般目的寄存器编码表和特殊目的寄存器表。一套指令集体系结构描述只有一个指令类型表,一个一般目的寄存器表,一个特殊目的寄存器表。指令类型表中的每一个指令类型将对应一个助记符编码表,一个后缀编码表,一个操作数编码表,用来描述该类型的指令的操作码和操作数的信息。

32位ARM指令多种不同的指令类型,相同指令类型的指令带有相同数目和类型操作数,相同的指令字长,并且其操作符和操作数具有相同编码位置。将这些指令类型的信息填写入指令类型表,该表格包含六个属性,描述了指令类型的名称,该类型指令所带的操作数的数量,能使用的后缀数目,指令类型的标识,操作数的类型,该指令类型使用的前缀等指令类型方面的信息。

ARM指令集的每一个指令类型的指令的具体信息,将由用户填写到相应的一个助记符编码表,一个后缀编码表和一个操作数编码表中。其中,助记符编码表记录了属于该类型的每条指令的助记符的二进制编码信息,包括每段助记符编码起始位置,每段的编码的长度,助记符编码被分割的段数,助记符的编码。后缀编码表记录了属于该类型的指令所使用的后缀的二进制编码信息,包括每段后缀编码起始位置,每段的编码的长度,后缀编码被分割的段数,后缀的编码,该后缀所属的类型。操作数编码表记录了属于该类型的指令的操作数的编码信息,包括每段操作数编码起始位置,每段的编码的长度,助记符编码被分割的段数,操作数的编码,立即数的值是否为相对于当前指令的偏移量标识,立即数的重定位的类型,立即数的特殊处理方式。立即数的值是否为相对于当前指令的偏移量标识,立即数的重定位的类型,立即数的特殊处理方式都和立即数的重定位有关,当操作数为寄存器时,这三项无效。

ARM指令集中使用了一些一般目的寄存器,和特殊目的寄存器,用户需要将这些寄存器的信息填写到一般目的寄存器表和特殊目的寄存器表,用于表示这些寄存器的信息。其中,一般目的寄存器表包含了寄存器的标识名,寄存器的起始编号,寄存器的终止编号,寄存器别名对应关系描述等信息。而特殊目的寄存器表则描述了特殊目的寄存器的二进制编码信息,包括编码起始位置,每段的编码的长度,特殊目的寄存器编码被分割的段数,特殊目的寄存器的编码。

ISA描述模块将读入描述ISA的上述表格的信息,并提取出相关的ISA数据输送至结构化信息自动配置模块。

结构化信息自动配置模块将这些数据组织成结构化的ISA代码信息。这些ISA代码信息为本发明采用的一种通用的可扩展ISA的结构方法中的基本结构。这种通用的可扩展ISA的结构方法,用于ISA的定义和ISA指令的解析。该方法包括一组用于指令定义和指令解析的基本结构,基于上述基本结构的指令定义的方法,和基于上述基本结构和指令定义的指令解析的方法。其中,指令定义方法和指令解析方法将在接下来的过程中使用。

如图3,上述的基本结构,包括:指令结构,指令编码的通用结构,指令操作码结构和指令操作数结构。

指令结构描述了属于同样类型的指令的全部信息:指令类型的名称,操作码,操作数组,操作数数量,格式描述。其中,操作码为指令操作码结构,操作数组为指令操作数结构的集合,格式描述将描述操作数的排布格式。

指令编码通用结构描述和记录了指令的各个部分所使用在二进制编码中的域的位置以及域对应的具体机器编码。包括域开始位置数组,域长度数组,域分段数量和域值。

指令操作码结构用于描述指令操作码信息,包括:指令助记符名称列表,指令助记符编码列表,指令助记符名称列表长度,后缀列表,后缀类型个数。其中,指令助记符编码列表为指令编码的通用数据结构的集合,后缀列表为指令操作数结构的集合,用于描述后缀这种特殊的操作数。

指令操作数结构描述包括寄存器操作数,立即数操作数,特殊操作数和寻址方式等操作数的信息,包括:操作数类型定义,操作数名称列表,操作数编码列表,复合操作数指针,重定位类型,相对跳转标志。其中,类型定义标明寄存器,立即数,后缀和符合操作数等类;操作数名称列表在操作数为后缀时,该项为罗列了某一类型的后缀的名称的集合,当操作数为立即数或寄存器时,该信息仅有一项,标示其为寄存器或者立即数;操作数编码列表为指令编码的通用数据结构的数组;重定位类型仅当操作数为立即数时有效,标识立即数的重定位类型;相对跳转标志在操作数为立即数时,标识立即数的值是于为相对于当前地址的偏移量。

结构化信息自动配置模块将含有结构化的ISA信息的基本结构逐一传送给ISA信息管理模块,由该模块的ISA定义子模块跟据由结构化信息自动配置模块传输来的ISA代码信息的大小和结构,动态申请内存以存放这些代码信息,并根据前述的本发明定义的通用的ISA结构方法中的ISA定义方法实现对ISA的定义。

如图4所示,ISA定义方法为通用的可扩展ISA的结构方法中基于基本结构的指令定义的方法。将含有ISA相关信息的基本结构组织成结构化的定义。在该方法中,每一个ISA指令类型都将对应一个指令结构,用于描述该类型指令的所有信息。该类型指令的指令结构中的操作码属性为一个操作码结构,该操作码结构的指令助记符名称列表记录了属于该指令类型的所有指令助记符名称,指令助记符编码列表按照指令助记符名称列表中助记符的顺序记录了指令助记符的编码信息,后缀列表属性对应了一组指令操作数结构用来记录该指令类型所使用的后缀信息。指令结构的操作数属性对应了一组指令操作数结构用来记录该指令类型所使用的操作数信息。所用的二进制编码信息(包括指令助记符,后缀,操作数),都保存在指令编码通用结构中。

汇编功能处理模块从汇编源文件中读入读取汇编指令,并通知ISA信息库管理模块,ISA信息库管理模块的指令集体系搜索子模块从内存中的ISA定义中提取需要的信息,按照前述的通用的ISA结构方法中的ISA解析的方法将汇编指令解析出来,并完成二进制指令代码的编码,最后输出二进制指令代码文件。

如图5所示,对汇编指令进行解析所采用的方法,为通用的可扩展ISA的结构方法中基于基本结构和指令定义的指令解析的方法。在该方法中,对于每一条汇编指令,词法分析其操作码(包含指令助记符和后缀),操作数,并将分析得到的信息填充入基于基本结构的指令解析结构中去。该结构使用一个指令结构,将该汇编指令的操作码信息填充入指令结构的操作码属性所对应的操作码结构中去,同时将该汇编指令的操作数信息填充入指令结构的操作数属性所对应的一组操作数结构中去。根据指令助记符和操作数找到与该指令相符合的指令类型,根据指令类型查找符合该指令类型的指令定义表并确定操作码操作数的具体编码定义(以通用编码结构存放),填充入指令解析结构中去。依次扫描数据域编码中的通用编码结构完成最后的指令编码。

生成源文件的二进制指令代码文件后,ARM指令集的汇编功能就此完成。

若要重新生成新的ISA的汇编器,用户只需要将新的ISA信息填写成相应的规范化的表格,交给ISA描述模块,重复上述过程即可完成相应的汇编功能。从而无需重新编译而生成相应的汇编器。

有上可以看出,本发明提出了一种基于用户对指令集体系结构进行描述,从而得到相应汇编功能的汇编器。它使用一种面向用户的高度抽象的通用指令集体系结构的描述方法,这种方法简单,易行,并且直观,无需掌握复杂的描述语言,就可以方便的生成所需的汇编器。它还采用一种高度通用的可扩展的,能够提供良好的接口以满足指令的扩展需求,同时有利于高效的汇编器指令解析和编码的指令集体系数据结构,使得本发明最大限度的支持现有的指令集体系结构的需求和设计思想,满足各种指令集体系结构的汇编器的开发需要。同时,本发明还支持一种免编译的汇编器的生成方法,使得汇编器程序在编译结束之后的运行过程中,就可以接收由用户描述指令集体系结构而得到的信息,完成汇编器的功能,从而省去了每生成一个汇编器就要重新编译一次的麻烦。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号