初学者求助,看一下这个冒泡程序怎么改符合要求

congtouzailai2008 2008-11-17 07:27:32
这个程序中引入了标志位,为使循环次数减少,但是没有对标志位作出判断,应该做什么样的改动使程序完整
.model small
.stack
.data
array db 56h,23h,37h,78h,0ffh,0,12h,99h,64h,0b0h
db 78h,80h,23h,1,4,0fh,2ah,46h,32h,42h

count equ $-array
flag dw 1
.code
.start
mov cx,count
dec cx
outlp: mov dx,cx ;保存CX
;mov bx,offset array
mov flag ,0 ;标志位,若那次没有进行交换,说明此时已排序完成

inlp: mov al,array[bx]
cmp al,array[bx+1]
jna next
xchg al,array[bx+1]
mov array[bx],al
mov flag ,1
next: inc bx
;dec dx
loop inlp

mov cx,dx ;恢复CX
loop outlp
.exit 0
end
...全文
112 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
BAYNPU 2008-11-17
  • 打赏
  • 举报
回复
...
next: inc bx
dec dx
jnz inlp;内循环
loop inlp;外循环
...

21,500

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧