汇编网首页登录博客注册
masmaster的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
文章收藏

[2010-09-05 09:50] 练习:一个排序程序

书里的程序看着比较纠结, 还是按自己的想法和代码来实现吧, 虽然不如书里的好。
;-----------------------------------------------------
title   sort number
assume  cs:code,ds:data
data    segment
num     db      12h,90h,45h,34h,89h,56h,78h,0,23h
data    ends
code    segment
start:
        mov ax,data
        mov ds,ax
        mov si,0
        mov cx,lengthof num-1    ;外循环次数
s:      push cx                  ;保护计数器
        mov di,si                ;si为外循环数据
        inc di                   ;di为内循环数据
s1:     mov al,[si]              ;开始比较
        cmp al,[di]              ;如果小于
        jb jx                    ;跳过
        xchg al,[di]             ;把小数放在[si]中
        mov [si],al              ;
jx:     inc di                   ;指向内循环下一个数据
        loop s1
        inc si                   ;指向外循环下一个数据
        pop cx                   ;恢复外循环计数器
        loop s
;结束
        mov ah,4ch
        int 21h
code    ends
end     start
;-----------------------------------------------------
测试:

d:\MASM>debug px.exe
-r
AX=0000  BX=0000  CX=0134  DX=0000  SP=0100  BP=0000  SI=0000  DI=0000
DS=14B9  ES=14B9  SS=14CA  CS=14DA  IP=0000   NV UP EI PL NZ NA PO NC
14DA:0000 B8C914        MOV     AX,14C9
-t

AX=14C9  BX=0000  CX=0134  DX=0000  SP=0100  BP=0000  SI=0000  DI=0000
DS=14B9  ES=14B9  SS=14CA  CS=14DA  IP=0003   NV UP EI PL NZ NA PO NC
14DA:0003 8ED8          MOV     DS,AX
-t

AX=14C9  BX=0000  CX=0134  DX=0000  SP=0100  BP=0000  SI=0000  DI=0000
DS=14C9  ES=14B9  SS=14CA  CS=14DA  IP=0005   NV UP EI PL NZ NA PO NC
14DA:0005 BE0000        MOV     SI,0000
-d ds:0 f
14C9:0000  12 90 45 34 89 56 78 00-23 00 00 00 00 00 00 00   ..E4.Vx.#.......
-g20

AX=1489  BX=0000  CX=0000  DX=0000  SP=0100  BP=0000  SI=0008  DI=0009
DS=14C9  ES=14B9  SS=14CA  CS=14DA  IP=0020   NV UP EI PL NZ NA PO NC
14DA:0020 B44C          MOV     AH,4C
-d ds:0 f
14C9:0000  00 12 23 34 45 56 78 89-90 00 00 00 00 00 00 00   ..#4EVx.........
-q

d:\MASM>
评论次数(2)  |  浏览次数(1243)  |  类型(程序与练习) |  收藏此文  | 

[  游客   发表于  2010-12-03 11:19  ]

很好很强大

[  游客   发表于  2011-12-28 16:48  ]

你可以使用冒泡排序法

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码