40: INT 10H ; 萤屏显示
41: MOV DX,03FCH
42: MOV AL,0BH
43: OUT DX,AL ; 继续接受
44: JMP CSND1 ; 循环工作
45: CEND:
46: RET ; 完成
本段程式共 84 个字元,非常精简,但仍然有节省的余地,要点在DX的数值上。
DX值由 03F8H到 03FDH,可知 DH 之值不变,只需改变 DL 即可。每改变DX一次,需要三个字元,如仅变DL,只需两个字元。这一指令共用了十一次,除第一次有必要外,其他十次就可以省下10个字元。
再要斤斤计较,还可以榨出二个字元来,在5至8条中,若用INC DX 只需要一个字元。
此外,31,32及43 ,44是浪费的作法,只要在第18条加一标号,就可以省却两个字元输出的指令。另外,还有35及39两条指令,应该合并,一次即将AX设妥,于是,又省下了一个字元。
先令 DH=3
1: CSEND0:
2: MOV DL,0FDH ; 输出埠
3: MOV AL,80H
4: OUT DX,AL ; 输出指令
5: MOV DL,0F8H ; LSB 速度控制
6: MOV AL,06H ; 速度=19200/秒
7: OUT DX,AL
8: INC DX ; MSB 速度控制
9: SUB AL,AL ; 速度=19200/秒
10: OUT &
上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页