发明名称 |
程序编译方法和编译器 |
摘要 |
本发明涉及一种程序编译方法和编译器,该方法包括读取待编译的程序并记录每条内存访问指令的基地址及偏移地址;将基地址相同的内存访问指令分为一个大类;将各大类中偏移地址最小的指令的内存地址作为该大类中所有指令的新的基地址;根据各大类的新的基地址计算各大类使用新的基地址是否能使该大类的内存访问指令的总代码长度变小;若是,则修改待编译的程序的代码,将这些大类中的每条指令的基地址修改成新的基地址、偏移地址修改为新的偏移地址,以生成目标程序。本发明通过将基地址相同的指令归为一个集合后,重新选择该集合中的指令的基地址,使得内存访问指令的偏移减少,从而缩减内存访问指令的尺寸,进而减少了总的程序的尺寸。 |
申请公布号 |
CN106406972A |
申请公布日期 |
2017.02.15 |
申请号 |
CN201610974546.6 |
申请日期 |
2016.11.04 |
申请人 |
珠海市杰理科技股份有限公司 |
发明人 |
黄震宇 |
分类号 |
G06F9/45(2006.01)I |
主分类号 |
G06F9/45(2006.01)I |
代理机构 |
广州华进联合专利商标代理有限公司 44224 |
代理人 |
明霖 |
主权项 |
一种程序编译方法,其特征在于,所述方法包括:读取待编译的程序,并记录每条内存访问指令的基地址以及偏移地址,所述内存访问指令的内存地址等于该指令的基地址加上该指令的偏移地址;将基地址相同的所述内存访问指令分为一个大类;将各大类中偏移地址最小的指令的内存地址作为该大类中所有所述指令的新的基地址;根据各大类的新的基地址计算各大类使用新的基地址是否能使该大类的内存访问指令的总代码长度变小;若存在总代码长度变小的大类,则修改所述待编译的程序的代码,将这些大类中的每条所述指令的基地址修改成新的基地址、偏移地址修改为新的偏移地址,以生成目标程序。 |
地址 |
519085 广东省珠海市吉大石花西路107号9栋综合楼(1-4层) |