| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1038 人关注过本帖
标题:[求助]冒泡法排序的问题
只看楼主 加入收藏
sandho
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-11-27
收藏
 问题点数:0 回复次数:3 
[求助]冒泡法排序的问题

将数据由1000h移到2000h,并由小到大排序,并输出。以下是我写的程序。可是运行后,什么都没有。请大家指教
data segment
org 1000h
data1 db 1,56,99,200,65,3,7,8,13,10
org 2000h
data2 db 10 dup(?)
data ends
stack1 segment para stack'stack'
db ?
stack1 ends
code segment
assume cs:code,ds:data,ss:stack1

begin:mov si,offset data1 ;将数据由1000h移到2000h,这是我那题目的要求
mov di,offset data2
push di
mov cx,10
s:mov ax,[si]
mov [di],ax
inc si
inc di
loop s

pop di ;冒泡法排序,使数由小到大排列
mov cx,9
s0:push di
mov cx,9
s1:mov bx,[di]
cmp bx,[di+1]
jg next
inc di
jmp return
next:xchg bx,[di+1]
inc di
return:loop s1
pop di
loop s0

mov di,offset data2 ;输出数据
mov cx,10
take:mov al,[di]
mov bl,100
and ax,00ffh
div bl
mov bh,ah
mov dl,al
add dl,30h
cmp dl,30h
jz two
mov ah,02h
int 21h
two:mov bl,10
mov ax,0
mov al,bh
div bl
mov bh,ah
mov dl,al
add dl,30h
mov ah,02h
int 21h
three:mov dl,bh
add dl,30h
mov ah,02h
int 21h
loop take
mov ax,4c00h
int 21h
code ends
end begin

[此贴子已经被作者于2006-11-29 12:49:02编辑过]

搜索更多相关主题的帖子: segment mov stack 冒泡 data 
2006-11-29 12:47
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 

你这个在输出之前好象就出现了死循环


2006-11-29 12:56
sandho
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-11-27
收藏
得分:0 
o?哪里出现死循环呢?
2006-11-29 15:45
srl9973
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2006-9-18
收藏
得分:0 
mov cx,9
s0:push di
mov cx,9
s1:mov bx,[di]
cmp bx,[di+1]
jg next
inc di
jmp return
next:xchg bx,[di+1]
inc di
return:loop s1
pop di
loop s0 ;这里出死循环,因内循环结束时=0,外循环时CX-1 就永远不可能为0了
2006-11-30 15:40
快速回复:[求助]冒泡法排序的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049720 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved