+ -
当前位置:首页 → 问答吧 → 汇编语言的冒泡排序问题——坐等老手

汇编语言的冒泡排序问题——坐等老手

时间:2011-05-01

来源:互联网

源程序如下:
---------------------------------------------------
extrn write:far
data segment
tit db 'these are the numbers of not be sorted yet:',0ah,0dh,24h
nums dw 32,51,13,76,35,8,44,84,23,67,62,37,43,98,34,12,65,22,50,87,54,21
result db 'they would be sorted as this:',0ah,0dh,24h
data ends

code segment
main proc far
assume cs:code;ds:data
start:
xor cx,cx
mov ax,data
mov ds,ax
mov dx,offset tit
mov ah,9
int 21h
mov si,offset nums
xor bx,bx
putout1:
mov ax,[bx+si]
stc
call far ptr write
mov dl,20h
mov ah,2
int 21h
add bx,2
inc cx
cmp cx,21
jbe putout1
mov dl,0ah
int 21h
mov dl,0dh
int 21h
mov dx,cx
mov si,offset nums
circle1:
dec dx
xor bx,bx
mov ax,[bx+si]
circle2:
cmp ax,[bx+si+2]
jl next
xchg ax,[bx+si+2]
mov [bx+si],ax
next:
add bx,2
dec dx
jnz circle2
add si,2
loop circle1
over:
mov dx,offset result
mov ah,9
int 21h
mov bx,offset nums
putout2:
mov ax,[bx]
stc
call far ptr write
add bx,2
mov dl,20h
mov ah,2
int 21h
dec cx
jnz putout2
mov ax,4c00h
int 21h
main endp
code ends
end start
---------------------------------------------------
我调试了很久依然没有得出正确结果。时而是排序算法出错,但不知错在哪;时而是不知道那里有溢出。还请各位高人指点。我用的是msam5在dos里的编译器,指令系统为8086。

作者: Arcbishop   发布时间: 2011-05-01

自己顶起……

作者: Arcbishop   发布时间: 2011-05-01