System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及指令集汇编器实现,尤其涉及一种模型驱动的汇编器自动生成方法及装置。
技术介绍
1、汇编器是编译系统中重要的组成部分,其主要功能是将汇编语言编写的源程序代码编译成二进制指令的目标文件。汇编器的输入为汇编语言程序代码,这些程序代码可以是高级语言编译器编译输出的汇编代码,也可以是手工编写的汇编语言程序代码,汇编器的输出为二进制指令的目标文件。汇编指令与二进制指令之间是一一对应的关系,是直译的过程。实现汇编器的难点在于如何高效地定义两者之间的映射转换关系,以及如何自适应的应对指令集体系结构的扩展变化。
2、对于不同的指令集体系结构(instruction setarchitecture,简称isa)均需要分别独立开发不同的汇编器,以满足不同目标处理器的要求。且汇编器一般是伴随目标处理器的设计而协同开发的,因此,在设计新的处理器时,需要重新开发与之相对应的汇编器。不同的目标处理器在指令字长、指令编码方式、寄存器设置和功能单元数目等方面都有所不同,使得汇编器在设计和实现上也均会有很大的不同。另外,处理器的结构不同以及设计思想的不同也会导致汇编器在设计和实现方法上的差异性。且由于这种差异性的存在,对每一种新的isa或者对原有的isa进行改进和扩展时,都需要重新开发与之相适应的汇编器。
3、现有技术中汇编器通常都是直接根据已经设计好的指令集架构,按照指令集手册的指令编码和指令格式手工编程实现,即需要依赖于人工编程方式实现。然而,在新指令集架构的设计过程中,指令集的并不是固定不变的,在不断的迭代改进和优化中,
技术实现思路
1、本专利技术要解决的技术问题就在于:针对现有技术存在的技术问题,本专利技术提供一种实现简单、成本低、智能化程度以及效果高、可扩展性好以及灵活性强的模型驱动的汇编器自动生成方法及装置。
2、为解决上述技术问题,本专利技术提出的技术方案为:
3、一种模型驱动的汇编器自动生成方法,步骤包括:
4、s01.构建生成指令集架构汇编器所需的汇编器描述模型,所述汇编器描述模型包括指令集架构的指令名称描述、指令编码字段描述、指令编码字段语法匹配规则描述以及指令项描述;
5、s02.根据所述汇编器描述模型,分别生成指令正则语法索引表、指令字段编码变换序列索引表以及指令名称与指令项索引的映射表,所述指令名称与指令项索引的映射表记录指令集中的所有指令的指令名称与其指令项索引的映射关系;
6、s03.读取汇编器的目标汇编程序代码,分别生成汇编指令索引表、汇编指令程序地址索引表、汇编指令长度索引表、汇编指令并行执行标记索引表、汇编指令二进制编码索引表以及标号与索引及程序地址映射表,所述标号与索引及程序地址的映射表记录指令集中的目标汇编程序中的所有与标号与索引及程序地址的映射关系;
7、s04.根据汇编指令索引值依次获取一条汇编指令,并根据步骤s02、步骤s03生成的各索引表、映射表将获取的汇编指令转换为对应的二进制编码,保存到所述汇编指令二进制编码索引表中;
8、s05.完成所有汇编指令的二进制编码后,输出编码结果。
9、进一步的,所述指令名称描述用于声明指令集包含的所有指令名称集合,所述指令编码字段描述用于声明指令集中指令格式出现的编码字段,所述指令编码字段语法匹配规则描述用于声明指令集中指令格式的编码字段语法匹配规则,所述指令项描述用于声明指令集中的所有指令项。
10、进一步的,所述指令编码字段描述包括多个指令编码字段二元组,每一个指令编码字段二元组包括编码字段名称、编码字段正则语法描述规则,所述指令编码字段语法匹配规则包括多个指令编码字段语法匹配规则七元组,每一个指令编码字段语法匹配规则七元组包括匹配规则名称、匹配模式、解析语法、解析内容块索引、解析内容映射实例、解析内容的二进制编码长度和匹配条目。
11、进一步的,所述指令项描述包括多个指令项五元组,每一个指令项五元组是由指令名称、指令长度、解析语法、汇编语法和编码字段序列组成,所述编码字段序列包括多个元组,每一个元组包括字段源、索引号、字段长度、匹配规则和默认编码。
12、进一步的,所述指令正则语法索引表按索引顺序记录指令集中的所有指令项的指令正则语法,所述指令字段编码变换序列索引表按索引顺序记录指令集中的所有指令项的指令字段编码变换序列。
13、进一步的,所述汇编指令索引表按索引顺序记录目标汇编程序中的所有汇编指令,所述汇编指令程序地址索引表按索引顺序记录目标汇编程序中的所有汇编指令的程序地址,所述汇编指令长度索引表按索引顺序记录目标汇编程序中的所有汇编指令的指令长度,所述汇编指令并行执行标记索引表按索引顺序记录目标汇编程序中的所有汇编指令的并行执行标记,所述汇编指令二进制编码索引表按索引顺序记录目标汇编程序中的所有汇编指令的二进制编码,所述标号与索引及程序地址的映射表中的每个条目包括标号、索引及程序地址。
14、进一步的,步骤s04包括:
15、s4.1.根据当前的汇编指令索引值,从所述汇编指令索引表中获得一条汇编指令;
16、s4.2.根据当前获取的汇编指令的首字符是否为并行执行标记,设置汇编指令并行执行标记索引表中对应索引位置的值;
17、s4.3.在指令名称描述集合中以正则语法搜索汇编指令,获得汇编指令名称;
18、s4.4.根据所述汇编指令名称,从所述指令名称与指令项索引的映射表中获取指令名称对应的索引值集合;
19、s4.5.依次根据所述指令名称对应的索引值集合中索引值从所述指令正则语法索引表中获取指令正则语法,在获取的指令正则语法中以正则语法搜索汇编指令,并确定汇编指令对应的正确索引值;
20、s4.6.根据确定的正确索引值从所述指令字段编码变换序列索引表中获取当前汇编指令对应的指令字段编码变换序列;
21、s4.7.根据所述指令字段编码变换序列对汇编指令进行二进制编码变换,获得汇编指令的二进制编码;
22、s4.8.依次更新汇编指令长度索引表、汇编指令程序地址索引表、标号与索引及程序地址的映射表,最后根据汇编指令并行执行标记索引表更新所有含并行执行标记的汇编指令的二进制编码。
23、进一步的,步骤s4.2中,若获取的汇编指令的首字符为并行执行标记,则汇编指令并行执行标记索引表中对应索引位置的值设为1,否则设为0。
24、进一步的,步骤s4.8包括:
2本文档来自技高网...
【技术保护点】
1.一种模型驱动的汇编器自动生成方法,其特征在于,步骤包括:
2.根据权利要求1所述的模型驱动的汇编器自动生成方法,其特征在于,所述指令名称描述用于声明指令集包含的所有指令名称集合,所述指令编码字段描述用于声明指令集中指令格式出现的编码字段,所述指令编码字段语法匹配规则描述用于声明指令集中指令格式的编码字段语法匹配规则,所述指令项描述用于声明指令集中的所有指令项。
3.根据权利要求2所述的模型驱动的汇编器自动生成方法,其特征在于,所述指令编码字段描述包括多个指令编码字段二元组,每一个指令编码字段二元组包括编码字段名称、编码字段正则语法描述规则,所述指令编码字段语法匹配规则包括多个指令编码字段语法匹配规则七元组,每一个指令编码字段语法匹配规则七元组包括匹配规则名称、匹配模式、解析语法、解析内容块索引、解析内容映射实例、解析内容的二进制编码长度和匹配条目。
4.根据权利要求2所述的模型驱动的汇编器自动生成方法,其特征在于,所述指令项描述包括多个指令项五元组,每一个指令项五元组是由指令名称、指令长度、解析语法、汇编语法和编码字段序列组成,所述编码字段
5.根据权利要求1所述的模型驱动的汇编器自动生成方法,其特征在于,所述指令正则语法索引表按索引顺序记录指令集中的所有指令项的指令正则语法,所述指令字段编码变换序列索引表按索引顺序记录指令集中的所有指令项的指令字段编码变换序列。
6.根据权利要求1所述的模型驱动的汇编器自动生成方法,其特征在于,所述汇编指令索引表按索引顺序记录目标汇编程序中的所有汇编指令,所述汇编指令程序地址索引表按索引顺序记录目标汇编程序中的所有汇编指令的程序地址,所述汇编指令长度索引表按索引顺序记录目标汇编程序中的所有汇编指令的指令长度,所述汇编指令并行执行标记索引表按索引顺序记录目标汇编程序中的所有汇编指令的并行执行标记,所述汇编指令二进制编码索引表按索引顺序记录目标汇编程序中的所有汇编指令的二进制编码,所述标号与索引及程序地址的映射表中的每个条目包括标号、索引及程序地址。
7.根据权利要求1~6中任意一项所述的模型驱动的汇编器自动生成方法,其特征在于,步骤S04包括:
8.根据权利要求7所述的模型驱动的汇编器自动生成方法,其特征在于,步骤S4.2中,若获取的汇编指令的首字符为并行执行标记,则汇编指令并行执行标记索引表中对应索引位置的值设为1,否则设为0。
9.根据权利要求7所述的模型驱动的汇编器自动生成方法,其特征在于,步骤S4.8包括:
10.一种模型驱动的汇编器自动生成装置,包括处理器以及存储器,所述存储器用于存储计算机程序,其特征在于,所述处理器用于执行所述计算机程序以执行如权利要求1~9中任意一项所述方法。
...【技术特征摘要】
1.一种模型驱动的汇编器自动生成方法,其特征在于,步骤包括:
2.根据权利要求1所述的模型驱动的汇编器自动生成方法,其特征在于,所述指令名称描述用于声明指令集包含的所有指令名称集合,所述指令编码字段描述用于声明指令集中指令格式出现的编码字段,所述指令编码字段语法匹配规则描述用于声明指令集中指令格式的编码字段语法匹配规则,所述指令项描述用于声明指令集中的所有指令项。
3.根据权利要求2所述的模型驱动的汇编器自动生成方法,其特征在于,所述指令编码字段描述包括多个指令编码字段二元组,每一个指令编码字段二元组包括编码字段名称、编码字段正则语法描述规则,所述指令编码字段语法匹配规则包括多个指令编码字段语法匹配规则七元组,每一个指令编码字段语法匹配规则七元组包括匹配规则名称、匹配模式、解析语法、解析内容块索引、解析内容映射实例、解析内容的二进制编码长度和匹配条目。
4.根据权利要求2所述的模型驱动的汇编器自动生成方法,其特征在于,所述指令项描述包括多个指令项五元组,每一个指令项五元组是由指令名称、指令长度、解析语法、汇编语法和编码字段序列组成,所述编码字段序列包括多个元组,每一个元组包括字段源、索引号、字段长度、匹配规则和默认编码。
5.根据权利要求1所述的模型驱动的汇编器自动生成方法,其特征在于,所述指令正则语法索引表按索引顺序记录指令集中的所有指令项的指令正则语法,所述...
【专利技术属性】
技术研发人员:刘仲,肖鑫,刘胜,郭阳,李程,田希,彭盼攀,陈海燕,雷元武,鲁建壮,汤先拓,
申请(专利权)人:中国人民解放军国防科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。