汇编语言的冒泡排序问题——坐等老手
时间: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。
---------------------------------------------------
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
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28