初学者求助,看一下这个冒泡程序怎么改符合要求
这个程序中引入了标志位,为使循环次数减少,但是没有对标志位作出判断,应该做什么样的改动使程序完整
.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