📄 bubble sort.asm
字号:
datarea segment
a dw 11h,55h,33h,77h,22h,88h,99h,44h,66h,100h
n dw 10 ;排序个数
datarea ends
;******************************************
prognam segment
;------------------------------------------
main proc far
assume cs:prognam,ds:datarea
start:
push ds
sub ax,ax
push ax
mov ax,datarea
mov ds,ax
mov cx,n
dec cx ;外重循环计数(比较遍数为个数减1) ;也是内重循环计数(第一编比较的次数)
loop1:
mov di,cx ;1)保存外重循环计数,
;2)给出下一内重循环的次数
mov bx,0 ; 初始偏移为0
loop2:
mov ax,a[bx] ;相邻两数比较
cmp ax,a[bx+2]
jge cotinue ;低地址数大,转
xchg ax,a[bx+2] ;高地址数大,则交换
mov a[bx],ax ; ax作中间单元
cotinue:
add bx,2
loop loop2 ;相当于dec cx ;此cx是内重循环计数
; jnz loop2
mov cx,di ;恢复外重循环的计数cx
loop loop1 ;相当于dec cx ;此cx是外重循环计数
; jnz loop1
ret
main endp
;--------------------------------------------------------------
prognam ends
;**************************************************************
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -