组合语言之艺术3

2008-04-09 04:09:12来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

第二章 准备工作

第一节 系统

一、系统之选择

只因真正了解电脑的人太少,迷信名气的结果,使得 IBM PC/AT占有了市场。为求电脑普及应用,我们唯有因陋就简,针对 IBM PC/AT及其兼容系统,作进一步的分析和说明。
尽管使用 80486 CPU的微电脑已问世,我个人认为以其造价及功能而言,并不符合效率法则。在从事艺术工作的立场,价值的高低,与所采用的材料没有绝对的关系。更何况我们正要证明,利用组合语言的制作技巧,能够使功能不高的微电脑发挥最大的边际效益。故本书仅以8088 CPU指令为研讨对象,至于程式应用在什么机型,就不在本书的考虑范围内了。

二、目录及磁碟

假定读者为有经验的程式师,且电脑为 IBM PC/XT/AT。 则在着手制作程式之初,应该先将系统准备妥当。即所谓「工欲善其事,必先利其器」,如果未能注意到下面所提的细节,仅仅制作一、两个程式尚可应付。待工作量一大,程式渐渐增多,不是某些程式找不到,就是找到了也不能一目了然。结果是心烦意躁,马马虎虎,另外再写一个,勉强应付了事。
硬碟空间较大,应行注意的事相对的也较多。首先应妥善规划好目录及子目录的分类及应用方式,否则每当要找一个档案时,往往有大海捞针之叹。再不然,在修改程式时,如果将不同的版本放在一起,一定会张冠李戴,错误百出。
每位程式师都应该有自己的目录,而且每个不同的整套档案都应有不同的子目录,这样方能明确的分辨以及应用。而最有效率的方法是,在每一子目录中,档案数不宜太多,且仅存放在同一工作项目下所需要的程式。
一旦硬碟坏了,所有贮存资料均将付诸流水。为了安全,一定要用软碟备份。最好每天复制一次,虽然每次复制,相当麻烦,但是万一程式被毁坏,那种损失是无从估计的。
最好的方法,是制作一个专门复制的工具,一般用 .BAT 应用程式,每天工作完毕,只要执行一次即可。

三、应用工具

程式写作是为了控制电脑运作,应用工具则是将程式师的观念和理解转化为能够连续执行的指令。因此,市面上的应用工具虽多,却不见得对程式的写作有所助益。下面列了几种,只要运用纯熟,绝对够用了。

程式写作:EDLIN ,PE II,WS等。

程式编译:MASM.EXE
早期 (1.25) 版本容许较多的「外界标题」,即External Label,但该版本仅限用于8088指令,较宜大型程式处理。
4.0 以前的版本,于档案开始时,可用.XCREF以产生标题及缓冲器的位址对照表。但后期的版本会发生错误,不能再用。

程式联接:LINK.EXE
早期的版本对 SEGMENT PUBLIC 'xxxx' 有些规定,但 3.0以后,除了对CODE及 DATA 有效外,其他如 BYTE 及 WORD 等皆无作用。

程式侦错:DEBUG.EXE 或 SYMDEB.EXE 及 MAPSYM.EXE
后两者为套件,必须另购。其优点为在侦错过程中,可以使用原程式中的标题名称,且可设「断点」等,侦错方便,功能较强。

系统处理:PCTOOLS.EXE 是 DOS下很有用的工具,可以作档案管理,也可用来直接修改程式机器码。此外,连机时可以用LL.EXE 或XTALK.EXE等。尤其是系统程式的侦错,经常需要用联机的方式,以另一台微电脑作为监视器。

这些工具应统一放在 \DOS 子目录中,且须在系统之自动执行程式(AUTOEXEC.BAT)里,先设妥优先通道(PATH)如:

1:PATH=\DOS;
是则,不论在哪一个子目录中,前述之工具皆可使用。

四、简化名称

前述各种工具,在程式侦错过程中使用频繁,为了应用上的方便,如果能少输入一些字符,不仅节省时间,且可避免错误。令用者在惯性反应下,得以集中精神,思考其他细节。
简化名称是最简单的方法,最好只用一个字母,由于长度相等,其后面的档案名称,就可以利用系统所提供的“F3”「复制上行」功能,不必再行输入。

是以:EDLIN.COM 改为 E.COM
MASM.EXE 改为 M.EXE
LINK.EXE 改为 L.EXE
DEBUG.EXE 改为 D.EXE
SYMDEB.EXE 改为 S.EXE
例如:在完成一个程式后,若要汇编,只要改第一个字母即可。
C:\>E MYFILE.ASM ( 原来在系统中输入的字符 )
此时仅输入“M”,再按“F3”键,立即变为:
C:\>M MYFILE.ASM
此外,如不需 .LST 等档案,则再加一“;”即可。
C:\>M MYFILE.ASM;
“L”及“D”等同样都可依循上面的方法,看来是雕虫小技,但实际上所节省的时间及精力却不同凡响。

五、参考资料

除专门性的资料外,程式师应该备妥各种有关输出、入,各种周边设备的参考资料或手册等,以便随手查阅。
最重要的是软件参考手册 MS-DOS Software Reference,其中有各种中断命令的使用规格。唯应注意的,是有一些中断功能与IBM BIOS相同,我建议读者不要使用这些中断,因其调用过程中,要借道BIOS,会使速度减慢。
其次为 IBM Programmer's Manual 的BIOS中断规格, 是处理所有周边设备必需的工具。
正因为它涉及周边设备,在设计中文系统时,输出入、显示及列印等功能都有待修改,这本手册更须彻底了解。
此外还有键盘的输入码表,也是编程必备的资料,本书附录三即为简要的码表介绍。
如果是编写应用程式,上述的资料已足够应付,但若涉及系统,则尚需了解系统的记忆空间安排,下表为 IBM微电脑的记忆区结构。各种厂牌设计理念虽有差别,但大同小异。
系统段 位 址 机 能 用 途
┌──────────────┐
0000 0000H │中断调用表 │
├──────────────┤
0000 0500H │DOS 及系统操作区 │
├──────────────┤
0000 4C00H │周边控制程式 │

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:CMM—软件产业发展的必由之路

下一篇:组合语言之艺术5