当前位置: 网学 > 编程文档 > 汇编语言 > 正文

汇编语言:套装软件制作

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/18
下载{$ArticleTitle}原创论文样式
元,如仅变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  DX,AL
  11:    MOV  DL,0FBH    ; 行控制暂存器
  12:    MOV  AL,DH     ;NO PARITY,1
           ; STOP,8
  13:    OUT  DX,AL
  14:    INC  DX     ; 通讯控制
  15:    OUT  DX,AL
  16:    MOV  DL,0F9H    ; 中断有效
  17:    SUB  AL,AL
  18: CSNDA:
  19:    OUT  DX,AL
  20: CSND1:
  21:    MOV  DL,0FDH    ; 状态暂存器
  22:    IN  AL,DX
  23:    TEST  AL,10H     ; 是否可接收?
  24:    JNZ  CRCV0     ; 可
  25:    TEST  AL,20H     ; 通道已清否?
  26:    JZ  CSND1     ; 8250未清
  27:    MOV  AH,1     ; 键盘有输入?
  28:    INT  16H
  29:    CMP  AL,07H     ; =''CTRL+G''
  30:    JE  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,回路的实例:
  前面曾经讨论过,程式的效率,经常决定于回路的处理方式及其技巧。其对空间上影响比较小,但是良好的设计理念,常使速度上有高达十倍,甚至百倍的差异,读者想必已经知道,但是如何能应

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号