[发明专利]基于C-SKY v2指令集的二进制工具集设计方法有效
申请号: | 201110460873.7 | 申请日: | 2011-12-31 |
公开(公告)号: | CN102681821A | 公开(公告)日: | 2012-09-19 |
发明(设计)人: | 李莹;尹茸;尹建伟;邓水光;吴健;吴朝晖 | 申请(专利权)人: | 浙江大学 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 杭州裕阳专利事务所(普通合伙) 33221 | 代理人: | 江助菊 |
地址: | 310027 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了基于C-SKYv2指令集的二进制工具集设计方法,包括汇编器设计和反汇编器设计,所述汇编器设计包括CSKY系列CPU的目标体系识别、CSKYv2指令集汇编文件的识别和处理、以及正确生成目标文件;通过重新设计汇编器和反汇编器,使其能在杭州中天微公司CSKY800系列嵌入式处理器工作。 | ||
搜索关键词: | 基于 sky v2 指令 二进制 工具 设计 方法 | ||
【主权项】:
基于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则在常量池查找表达式,创建对常量池的引用;如果不能找到,则在常量池中创建新的一项。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201110460873.7/,转载请声明来源钻瓜专利网。
- 上一篇:屏蔽罩吹气送料装置
- 下一篇:一种消除色差的波带片结构