论文部分内容阅读
当前,嵌入式系统已广泛应用在各行各业。嵌入式微控制器作为嵌入式系统的核心,正处于迅速发展阶段。要想在嵌入式微控制器上建立各种应用,首先得为其开发相应的编译工具链。汇编器作为编译工具链的关键组成部分,如何对其进行快速、高效地构造,对整个产业的发展至关重要。此外,由于嵌入式产品在实时性、效率等方面要求较高,如何设计出具有良好编译优化功能的汇编器已成为研究热点。窥孔优化作为编译优化的组成部分,在提高应用程序性能方面起着重要作用。然而,在传统的窥孔优化中,优化窗口的大小多半固定,且对于符合优化条件但非连续排列的指令序列,该方法不具备较好的识别能力。针对这些问题,本文提出了一种构造汇编器的方法,并对传统的窥孔优化方法进行了改进。本文主要工作有以下几个方面:首先,设计了针对BJX微控制器的交叉汇编器BJXASM。该汇编器所生成的代码能够在仿真器上运行。在实现BJXASM时,本文通过软件复用方式,对目标代码运行在PIC体系结构上的汇编器GPASM进行移植、改造和优化,使其支持相应的目标平台。其次,提出了动态绑定微控制器信息的方法。该方法将与微控制器相关的信息从汇编器中分离出来,存放于单独的文件中,并在汇编过程中动态加载。这使得BJXASM具有较好的灵活性和扩展性。然后,针对原汇编器优化能力的不足,提出了一种窥孔优化方法。该方法充分利用正则表达式的匹配能力,能够准确地匹配符合要求但非连续存放的指令序列,并将其替换成运行时间更快、代码长度更短的指令序列。此外,本文在汇编器BJXASM中加入了一些数据流分析方法,如活跃变量分析方法和公共子表达式分析方法等,以进一步提高BJXASM的优化功能。最后,对本文提出的窥孔优化方法进行了代码大小与运行时间方面的测试。实验结果表明,BJXASM能较好地支持相应的目标平台,该优化方法能有效地减少目标代码的大小与运行时间。