📄 asm59.asm
字号:
data1 segment
a dw 10,34,23,12,56,31,89,64,42,14,20
data1 ends
data2 segment
save_cnt dw ?
start_addr dw ?
data2 ends
sta segment STACK
db 200h dup(?)
top label word
sta ends
program segment
assume cs:program,ds:data2,es:data1,ss:sta
main proc
mov ax,sta
mov ss,ax
mov sp,offset top
push ds
xor ax,ax
push ax
mov ax,data2
mov ds,ax
mov ax,data1
mov es,ax
mov di,offset a
mov start_addr,di
mov cx,es:[di]
mov save_cnt,cx
init: mov bx,1
dec save_cnt
jz sorted
mov cx,save_cnt
mov di,start_addr
next: add di,2
mov ax,es:[di]
cmp es:[di+2],ax
jae cont
xchg es:[di+2],ax
mov es:[di],ax
sub bx,bx
cont: loop next
cmp bx,0
je init
sorted:
ret
main endp
program ends
end main
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -