asm59.asm

来自「常见汇编语言程序设计原代码!我编的!希望大家给点意见」· 汇编 代码 · 共 50 行

ASM
50
字号
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 + =
减小字号Ctrl + -
显示快捷键?