data segment;定义数据段
org 2000
arr db 5,2,1,0,2,3,8,6,5,9
count equ $-arr
data ends
code segment;定义代码段
assume cs:code,ds:data
start:
;初始化待排序列
lea si,arr
mov dx,count
Foaming:
;不足两个元素,已有序
sub dx,1
jle endfoaming
xor bx,bx
mov cx,dx
Foaminglop:
;开始一趟排序
mov ax,[si]
cmp ax,1[si]
jle next
;逆序则交换
swap:
push ax
mov ax,1[si]
mov [si],ax
pop ax
mov 1[si],ax
next:
;继续本趟排序
inc bx
loop Foaminglop
;开始下趟排序
jmp Foaming
endfoaming:
;结束排序
mov ax,4c00h
int 21h
code ends;结束程序