附录二程式语言效率分析.docx
《附录二程式语言效率分析.docx》由会员分享,可在线阅读,更多相关《附录二程式语言效率分析.docx(10页珍藏版)》请在第壹文秘上搜索。
1、上一页目录下一页附录二程式语言效率分析附录二程式语言效率分析以下为利用ASSEMBLY,basic,pascal,c,fortran等程式语言,将个24x24之点阵字形,放大成为48x48,并分别比较其处理速度、占用空间以及制作时间。为了正确计算执行时间,特意作10,000次处理,至于指定的24x24字形,则假设为空格。一、ASSEMBLY组合语言变化无穷,先以般的作法,用点阵位移来处理。1PAGE60,1322CGSEGMENT3BUFINDB72DUP(O)45678910:11:12:13:14:15:16:17:18:19:20:21:22:23:24:25:26:27:28:29:3
2、0:31:32:33:34:35:36:37:BUFOTSTART:S3:MVBYTE:MVDB:MVDBl:DB72*4DUP(O)ASSUMECS:CG,DS:CG,ES:CGMOVAX,CGMOVDS,AXMOVES,AXCLDMOVBP,10000;处理10,000次SUBCX,CXMOVBX,CXMOVDX,1803H;计数用MOVSI,OFFSETBUFIN;24*24点阵起始位址MOVDI,OFFSETBUFOT;预定48*48储存位址MOVBH,DL:做三列1.ODSB;取原点阵MOVBL,ALMOVCL,8;做八位元RCLBL,1;左移一次PUSHF;保存状态RCLAX,1;
3、两字同时左移一次POPF:取出原移位状态RCLAX,1;再一次,得双位点值1.OOPMVDBl;八次回路STOSW;存入MOVDI+4,X;上下放大一行DECBH;共3列JNZMVDBADDDI,6;移向次行DECDHJNZMVBYTE;共24行38:DECBP;执行10,000次39:JNZS3;完成40:MOVAX,4C00H41:INT21H42:CGENDS43:ENDSTART本程式制作时间,为十五分钟。经汇编后,得934字元的执行程式,执行耗时14.5秒。若将上段程式加以分析,可以发现到此段程式执行时间全部浪费在23至30这一段回路中。为了增加速度,可以将空间加大,避开回路,连续执
4、行八次移位动作如次:23:RCLBL,124:RCLAX,125:SHLAX,126:同上共八次47:MOVCX,AX;AX中为单位元值48:SHRCX,1;CX得到双位元点阵值49:ORAX,CX;双位元点阵合并似此,程式增大了36字元,但执行时间却减少为7.1秒,速度快了一倍!是不是还是更好的方法呢?相信定多得不计其数。比如说,我们已知原点阵放大倍后点形为双点,以双点做表,取其对应之值,即可免除各点移位的手续,再将原程式第18条以下改为:18:VT2:19:CALLMVBYTE;放大一行20:SUBSI,3;纵向尚须放大一次21:CALLMVBYTE;再放大一行22:DECDH;完成否?2
5、3:JNZVT2;再做24:RET;完成25:MVBYTE:26:MOVCL,DL;一行有三字元27:MVDB:28:LODSB;取一字元29:MOVAH,AL;分置两处30:ANDAX,OFFOH;AH,AL各取四位元31:SHRAL,1;右移四次还原32:SHRAL,133:SHRAL,134:SHRAL,135:MOVBL,AL36:MOVAL,BYTETBBX;左字元取预设表值37:MOVBL,AH38:MOVAH,BYTETBBX;右字元取表值39:STOSW;得二字元置缓冲器中40:LOOPMVDB;做三次41:RET42转换表43:BYTETBDB000H,003H,OOCH,O
6、OFH,030H,033H,03CH,03FH44:DBOCOH,0C3H,OCCH,OCFH,OFOH,0F3H,OFCH,OFFH45:CGENDS46:ENDSTART再换个方法,因为有个XALT的指令,是专为这种程式所设计的。由第25条起,调整如下:25:MVBYTE:26:MOVCL,4;供AL左移四位用27:MOVBX,OFFSETBYTETB28:MVDB:29:LODSB;取一字元30:MOVAH,AL;分置两处31:ANDAX,OFOOFH;AH,AL各取四位元32:SHRAL,CL33:XLAT;将BX+AL值放AL中34:XCHGAL,AH35:XLAT36:STOSW3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 附录 程式 语言 效率 分析