计算机理论的论文范文特辑.docx
《计算机理论的论文范文特辑.docx》由会员分享,可在线阅读,更多相关《计算机理论的论文范文特辑.docx(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机理论的论文范文特辑计算机理论的论文范文特辑诗琪.P-CODE工作原理P-CODE的基本工作原理是编译器先把执行程序编译为比80X86机器码紧凑得多的中间代码形式,然后在链接时把一个小工作引擎嵌入执行程序中,最后在运行时由此工作引擎把P-CODE解释为本地机器码实际执行。为了方便使用,P-CODE技术实现于编译经过的代码生成阶段。例如开发者在C/C+中应用P-CODE技术时,只需把它作为一个优化选项选中即可2.1.指令格式在应用P-CODE技术时,链接器会自动拷贝一份长度约为9K的P-CODE工作引擎到执行程序中,程序运行时它仿真一个虚拟处理器。P-CODE技术能压缩执行程序代码长度的关键
2、就在于工作引擎的指令格式。我们知道,在当代计算机的指令格式中,指令除指令码外,还包括指出源和目的操作数的地址码,真正的操作数一般放在内存和寄存器中。而一般常用的指令格式是二地址码构造,少量使用一地址码和零地址码构造。例如最简单的两个寄存器值相加汇编指令写为:ADDAX,BX;AX(AX)+(BX)而P-CODE是一个独立于本地机器的虚拟指令系统,其工作引擎是一个基于堆栈的虚拟机,它的大多数指令中只要指令码,没有地址码部分,隐含操作数存储于系统堆栈中,因此远比本地机器指令紧凑。同样上述的工作,P-CODE就可简化为ADDW,它执行时从堆栈中弹出操作数,运算后的结果再压回堆栈中。如用80x86汇编
3、指令表示,就等价于下列指令段:POPAX;弹出第一个操作数到AX寄存器中POPBX;弹出第二个操作数到BX寄存器中ADDAX,BX;把两数相加,结果存贮于AX寄存器中PUSHAX;将AX寄存器中的结果压回堆栈中2.2.操作码长度P-CODE引擎使用堆栈隐含寻址,使得其操作码长度平均小于2个字节,分为标准和扩展的操作码两大类。标准操作码占用一个字节,由255条最常用的指令组成,扩展操作码由256条不太常用的指令组成。有统计表明,在一个全部编译为P-CODE的20万行的C程序中,一字节指令使用频率为56%,占代码长度比例为37%,二字节指令使用频率为39%,占代码长度比例为52%,而三或四字节指令
4、占用了余下很小的百分比。2.3.引用P-CODE技术优化执行程序长度的另一个重要特性是引用。引用就是编译器优化时,去掉代码段的重复现象,分享代码段的单个实例,类似于在高级语言中使用函数或经过的方法,当然它是编译器自动进行的。编译器优化时检查它所产生的代码,寻找指令段重复的地方,在程序中只保留重复段的一次出现,将所有其它出现的地方都改为指向保留段的一条跳转指令。此技术为执行程序长度压缩了大约5-10%的额外空间。2.4.本地入口点使用P-CODE,在程序代码中有时也会产生额外的空间开销,这就是P-CODE函数前面的本地入口点。当程序中局部使用P-CODE编译时,很可能会发生机器码函数调用P-CO
5、DE函数的情况。由于P-CODE指令段需由P-CODE引擎解释执行,这时就需要编译器在P-CODE函数开场处额外增加几条机器指令即本地入口点,以便机器转换控制,停止执行本地机器码而调用P-CODE引擎,由P-CODE引擎继续解释执行P-CODE函数。3.P-CODE使用方法P-CODE可用于Microsoft的VisualC+、VisualBasic等很多应用程序开发包中,它可全局地用于整个应用程序,可以通过使用Pragmas编译指示有选择地用于局部模块中。3.1.全局使用方法当要求以部分速度代价来到达程序长度的显著减小时,可对应用程序全局地使用P-CODE编译。如主要用于用户界面的程序,象字
6、处理器、电子日历、小型企业财务软件包等。此使用方法比拟简单,只要改变应用工程的编译选项,然后重新编译即可。例如在VisualC+工程中加上编译选项开关/Oq,或在VisualBasic工程属性的编译页帧中,选中编译为P-代码选项。3.2.局部使用方法若要在程序的速度和长度性能上到达比拟平衡的满意效果,可在VisualC+源文件中有选择性地加上P-CODE编译指示,详细地指示编译器将哪一段代码编译为P-CODE,而将哪一段代码编译为本地机器码格式。P-CODE局部使用方法是将编译指示器#PragmaOptimize(q,on)置入想用P-CODE的模块或函数开场处,而在用P-CODE的模块或函数
7、结束处加上编译指示器#PragmaOptimize(q,off)。一般来讲,要想到达比拟满意的使用效果,就要将主要影响程序执行速度的模块或函数编译为本地机器码,如频繁调用的函数、出如今循环内的函数等。而将相对来讲对程序的执行速度起次要作用、主要影响程序长度的模块或函数编译为P-CODE,如用户接口经过中的菜单和对话框模块,由于这里程序执行速度上的牺牲相对于用户的工作速度来讲,是微缺乏道的。还有一些很少使用的模块或函数,如出错处理函数、一般情形下不会用到的功能模块也应编译为P-CODE。4.P-CODE程序调试用P-CODE编译的程序,可使用Microsoft提供的调试工具如CodeView调试
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 理论 论文范文 特辑
限制150内