自定义一组有首地址为data的10个字的数组,请利用冒泡排序算法来编写程序,以使该数组中的数按照从小到大的次序有序化。
data segment
buffer dw 12h,34h,4ah,5bh,3ch,2ah,10h,55h,67h,23h
flag db ?
data ends
code segment
assume ds:data,cs:code
start:
mov ax,data
mov ds,ax
mov si,0 ;i
mov cx,9
s1: mov di,0 ;j
mov bx,cx ;bx暂存cx的值
mov cx,9
sub cx,si ;9-i
s2:
mov ax,buffer[di]
cmp ax,buffer[di+2]
jge con
r: inc di
inc di
loop s2
mov cx,bx
inc si
loop s1
jmp a1
con: xchg ax,buffer[di+2]
mov buffer[di],ax
jmp r
a1:
mov ah,4ch
int 21h
code ends
end start
运行前(076A:0000-076A:0014):
运行后(076A:0000-076A:0014)