E CEND ; 是,完毕
31: MOV DL,0F8H
32: JMP CSNDA ; 送输入字符
33: CRCV0: ; 接收
34: MOV DL,0FCH ; 通讯控制
35: MOV AX,0E08H ; 暂停中断
36: OUT DX,AL ; 及显示
37: MOV DL,0F8H
38: IN AL,DX ; 收字符
39: INT 10H ; 萤屏显示
40: MOV DL,0FCH
41: MOV AL,0BH
42: JMP CSNDA ; 循环工作
43: CEND:
44: RET ; 完成
看来似乎这样太小气,可是所谓艺术,就要具备丝毫不苟且的态度,再说由84个字元变成66个字元,省了近百分之廿,而且,速度也快了。这种程式原本就很精简,只有训练有素,追求完美的程式师,才做得到。
另一种做法,便是将重复的过程写成回路,约可节省廿几个字元。但是,由于时间定律限制,通讯程式颇重时效,回路是否值得,尚要多方面分析,不可轻率决定。
2,回路的实例:
前面曾经讨论过,程式的效率,经常决定于回路的处理方式及其技巧。其对空间上影响比较小,但是良好的设计理念,常使速度上有高达十倍,甚至百倍的差异,读者想必已经知道,但是如何能应用已知的技巧,来改进设计的程式呢?
回路是利用计数器,反复进行相同的程序作业,这种程式,目的就是为了节省空间,相对地,时间上难免有所损失。
因此,在设计回路时,必须先行考虑清楚: 空间的节省与时间的交换是否值得? 其次,则要充份掌握回路的特色,要用得恰到好处,不可掉以轻心。
原则上,在回路中,指令要用得精简,流程要非常明确,尤其重要的是,应力求避免在回路中使用缓冲器,最好充份利用暂存器。如果时间效率极为重要,则不妨放弃回路方式。
&nb
上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页