[发明专利]基于C-SKY v2指令集的二进制工具集设计方法有效
申请号: | 201110460873.7 | 申请日: | 2011-12-31 |
公开(公告)号: | CN102681821A | 公开(公告)日: | 2012-09-19 |
发明(设计)人: | 李莹;尹茸;尹建伟;邓水光;吴健;吴朝晖 | 申请(专利权)人: | 浙江大学 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 杭州裕阳专利事务所(普通合伙) 33221 | 代理人: | 江助菊 |
地址: | 310027 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 sky v2 指令 二进制 工具 设计 方法 | ||
1.基于C-SKY v2指令集的二进制工具集设计方法,包括汇编器设计和反汇编器设计,其特征在于,所述汇编器设计包括CSKY系列CPU的目标体系识别、
CSKYv2指令集汇编文件的识别和处理、以及正确生成目标文件;
所述CSKYv2指令集包括伪指令、一般指令和分支跳转指令;
所述CSKYv2指令集汇编文件的识别和处理步骤为:读取汇编源文件,当扫描到标号时调用colon函数处理标号,当扫描到伪指令时调用相应的伪指令处理函数,当扫描到宏指令时调用对应的宏指令处理函数,当扫描到机器指令时调用md_assemble函数进行汇编处理;最后调用若干第二阶段的处理函数处理剩余信息;
所述伪指令的处理包括如下步骤:
(1)查询伪指令表,调用相应处理函数;
(2)若是CSKYv2指令集特有的伪指令,则进行识别转化,根据不同指令以及该汇编语句的具体写法,将这条伪指令转化为一般指令或跳转指令,继续处理;
所述md_assemble函数的处理包括如下步骤:
(11)将CSKY V2的32位指令按以下三种类型对进行分类,跳转类型编码指令寻址方式、立即数类型编码指令寻址方式和寄存器类型编码指令寻址方式,将CSKY V2的16位指令按跳转类型、立即数类型和寄存器类型进行分类;
(12)匹配待处理的汇编文本,解析该段文本所对应的指令,获取该指令的处理函数组;
(13)根据该指令的操作数选择合适的处理函数;
(14)进入不同种类的指令的处理函数即一般指令或跳转指令急需处理;
(15)若指令中包含常量,将该常量放入常量池;所述一般指令的处理包括如下步骤:
(16)解析操作数,若操作数不能解析则生成具有相应重定位信息的修补信息;
(17)生成新的目标文件片段,写入操作码和操作数;
所述分支跳转指令的处理包括如下步骤:
(18)解析操作数,若操作数不能解析则生成具有相应重定位信息的修补信息;
(19)生成新的目标文件片段,写入操作码和操作数的初始值;
(20)进入汇编第二阶段,利用relax方式处理重定位信息和修补信息;
所述relax方式的处理包括如下步骤:
(21)将CSKYv2中的伪跳转指令和分支跳转指令归纳,分成不同的组,生成数据表;
(22)根据该数据表,从同组指令中,选择合适的一条指令;
(23)解析修补信息,得到修补后的值;若修补信息不能解析,则作为重定位信息项写入目标文件,修补后的值规定为0;
(24)将选定的指令编码,和修补后的值,写入目标文件;
所述常量池的处理包括如下步骤:
(25)在md_assemble函数的末尾检查常量池;
(26)如果常量池大小为0,则创建新的变量池;如果不为0则在常量池查找表达式,创建对常量池的引用;如果不能找到,则在常量池中创建新的一项。
2.根据权利要求1所述的基于C-SKY v2指令集的二进制工具集设计方法,其特征在于,所述反汇编器设计包括如下步骤:判断文件类型、解析数据、反汇编CSKY v2指令;
所述反汇编CSKY v2指令的处理包括如下步骤:
(27)根据CSKY v2指令编码表编制二进制“先大类后小类“的查询方案;
(28)根据该查询方案进行查询,找到反汇编处理信息,进行反汇编格式化打印;
(29)编译该反汇编器时需要打开跳转表优化。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110460873.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:屏蔽罩吹气送料装置
- 下一篇:一种消除色差的波带片结构