| 网站首页 | 文章中心 | 电子书下载 | 矢量图库 | 视频教程 | 素材下载 | 程序代码下载 | JS代码 | 论坛 | 
常用软件类:
|杀毒安全 |联络聊天 |网络软件 |多媒体类 |系统工具 |图形图像 |系统工具 |应用软件 |行业软件
开发设计类:
|动画制作 |图像处理 |3D设计 |操作系统 |站长学院 |网络相关 |WEB设计 |数据库类 |程序开发
汇编语言---程式设计 (5)
作者:未知    文章来源:网络    点击数:    更新时间:2006-7-19
    AH,[SI-2] 
   16:        JMP    COMPAR1 
    程式中的回路,对前面有一比较分支不太有利,因为回路每次要17T ,比较分支就是现成的回路,不利用形成浪费。 
    若把回路改为位置比较,程式即为: 
    1:        MOV    CX,SI 
    2:        ADD    CX,[SI] 
    3:        INC    SI 
    4:        INC    SI 
    5:        SUB    AL,AL      ;先设为最小值,备用 
    6: COMPAR: 
    7:        MOV    AH,AL      ;设AH为低位值 
    8: COMPAR1: 
    9:        LODSB          ;取资料 
   10:        CMP    SI,CX      ;比位置到终点? 
   11:        JAE    COMRET      ;完成 
   12:        CMP    AL,AH      ;比大、小 
   13:        JAE    COMPAR      ;高位大,再查 
   14:        MOV    [SI-2],AX ;交换AH,AL,排序 
   15:        DEC    SI      ;向低位再查 
   16:        MOV    AH,[SI-2] 
   17:        JMP    COMPAR1 
   18: COMRET: 
   19:        RET 
    如此,在分支时,在第13条指令做回路,10,11 则比较住址以决定是否完成。这一来,完成结束只有一次,需时 16T,其余所有执行时间皆为4T,较前一回路快了13T 之多。 
    再试用「终止指令」法,其必要条件为资料中有多余的组合可供选择。一般多以 00H,0FFH 等极端值比较理想,下面且以0FFH作为终止指令,并置于资料终止处。 
    1:        MOV    CL,0FFH   ;终止检查用 
 &

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 


相关文章