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

汇编语言 - 程序设计教程(五)

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/18
下载{$ArticleTitle}原创论文样式
nbsp;  CMP    AL,AH      ;比大、小
    6:        JAE    COMPAR      ;高位大,不变
    7:        MOV    [SI-2],AX ;交换AH,AL,排序
    8:        DEC    SI      ;向低位再查
    9:        MOV    AH,[SI-2]
   10:        JMP    COMPAR1

    当然,上面这段程式并不成立,因为没有出口,永远做不完。程式的终止有很多方法,一是用计数器,一是用位置来比较,也有用终止指令的,不一而足,各有长短。
    首先,假设在DS:SI 中,有一长度值,兹以计数器的回路来试试看:
    1:        LODSW
    2:        MOV    CX,AX      ;似此,3B 18C
        ;若用    MOV   CX,[SI]
        ;    INC   SI
        ;    INC   SI
        ;则需    6B,21T
    3:        SUB    AL,AL      ;先设最小值,备用
    4: COMPAR:
    5:        MOV    AH,AL      ;设AH为低位值
    6: COMPAR1:
    7:        LODSB          ;取资料
    8:        CMP    AL,AH      ;比大、小
    9:        JB    COMPAR2   ;低位大,需排序
   10:        LOOP    COMPAR      ;回路
   11:        RET          ;完成
   12: COMPAR2:
   13:        MOV    [SI-2],AX ;交换AH,AL,排序
   14:        DEC    SI      ;向低位再查
   15:        MOV    AH,[SI-2]
   16:        JMP    COMPAR1
    程式中的回路,对前面有一比较分支不太有利,因为回路每次要17T ,比较分支就是现成的回路,不利用形成浪费。
    若把回路改为位置比较,

  • 下一篇资讯: 献给汇编语言初学者
  • 网学推荐

    免费论文

    原创论文

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