加入收藏 | 设为首页
广告位出租
中国论文网 >> 计算机 >> 计算机理论 >> 优化程序长度的一种方法

优化程序长度的一种方法

发布时间:2006-09-15 00:25

摘要:本文分析了Microsoft公司优化程序长度的P-CODE 技术的基本工作原理、P-CODE的使用方法以及P-CODE程序的性能。提出了P-CODE编译的程序调试时应注意的主要问题。

关键词:程序优化 代码压缩 P-CODE 编译指示器 程序调试

1. 前言

用户要求应用程序有更多更全的功能,使得应用程序的代码长度持续增长,但由于系统的开放性,有时也要求应用程序能在多种环境下运行,有很好的可移植性。这要限制应用程序的代码长度,减少其运行时所占的内存容量。

Microsoft公司为了满足此需求,在其应用程序开发包中引进了一种称为P-CODE(Packed Code, 压缩码)的代码压缩技术。此技术与本地机器无关,在大多数情况下,可把执行程序的长度减少大约40%,为程序员提供了一个灵活而又容易实现的解决方案,减少了应用程序对内存容量日益增长的需求。

2. P-CODE工作原理

P-CODE 的基本工作原理是编译器先把执行程序编译为比80X86机器码紧凑得多的中间代码形式,然后在链接时把一个小工作引擎嵌入执行程序中,最后在运行时由此工作引擎把P-CODE解释为本地机器码实际执行。为了方便使用,P-CODE技术实现于编译过程的代码生成阶段。例如开发者在C/C++中应用P-CODE技术时,只需把它作为一个“优化”选项选中即可

2.1. 指令格式

在应用P-CODE技术时,链接器会自动拷贝一份长度约为9K的P-CODE工作引擎到执行程序中,程序运行时它仿真一个虚拟处理器。

P-CODE技术能压缩执行程序代码长度的关键就在于工作引擎的指令格式。我们知道,在现代计算机的指令格式中,指令除指令码外,还包括指出源和目的操作数的地址码,真正的操作数一般放在内存和寄存器中。而一般常用的指令格式是二地址码结构,少量使用一地址码和零地址码结构。例如最简单的两个寄存器值相加汇编指令写为:ADD AX, BX; AX←(AX)+(BX)

而P-CODE是一个独立于本地机器的虚拟指令系统,其工作引擎是一个基于堆栈的虚拟机,它的大多数指令中只有指令码,没有地址码部分,隐含操作数存储于系统堆栈中,因而远比本地机器指令紧凑。同样上述的工作,P-CODE就可简化为ADDW,它执行时从堆栈中弹出操作数,运算后的结果再压回堆栈中。如用80x86汇编指令表示,就等价于下列指令段:
分页:[1] 2 3 4  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
Copyright © 2006 Chinalww.com. All rights reserved.中国论文网 版权所有