汇编_ASM_选择排序

PRINT MACRO     OPT;输出十进制数字的宏

              MOV       AX,OPT
              MOV       BL,10
              DIV       BL          ;余数在ah,商在al ,商为十位,余数为个位
              MOV       DX,AX
              ADD       DH,30H
              ADD       DL,30H
              MOV       AH,02H
              INT       21H         ;输出十位
              MOV       DL,DH
              MOV       AH,02H      ;输出个位
              INT       21H
              MOV       DL,20H
              MOV       AH,02H
              INT       21H         ;输出空格
              ENDM

;.....................................................................................................................

        DATA SEGMENT
       ARRAY DW        3,2,1
    MESSAGE1 DB        "ORIGINAL ARRAY:",13,10,'$'
    MESSAGE2 DB        13,10,"AFERT SELECTEDSORT:",13,10,'$'
        TEMP DW        0
       COUNT DW        3
        DATA ENDS
        CODE SEGMENT
              ASSUME    CS:CODE,DS:DATA

;.....................................................................................................................
        MAIN PROC      FAR
      START: MOV       AX,DATA
              MOV       DS,AX
              LEA       DX,MESSAGE1
              MOV       AH,09H
              INT       21H         ;提示输出原始数组
              MOV       CX, COUNT
              LEA       SI,ARRAY
ORG_PRINT: PRINT     [SI]
              ADD       SI,2
              LOOP      ORG_PRINT
              MOV       DL,0
              MOV       AH,02H
              INT       21H

              CALL      SORT;调用排序子程序

              LEA       DX,MESSAGE2
              MOV       AH,09H
              INT       21H
              MOV       CX,COUNT
              LEA       SI,ARRAY
           SORTED_PRINT: PRINT     [SI]
              ADD       SI,2
              LOOP      SORTED_PRINT
              MOV       AH,4CH
              INT       21H
        MAIN ENDP

;................................................................................................................................

        SORT PROC      NEAR;选择排序子程序
              MOV       CX,COUNT
              LEA       DI,ARRAY

       LOP1: MOV       DX,CX
              MOV       SI,DI

              MOV       BX,DI
              ADD       BX,2
       LOP2: MOV       AX,[SI]
              CMP       AX,[BX]
              JLE       CONTINUE
              MOV       SI,BX

   CONTINUE: ADD       BX,2
              LOOP      LOP2

              MOV       AX,[DI]
              XCHG      AX,[SI]
              MOV       [DI],AX
              ADD       DI ,2
              MOV       CX,DX
              LOOP      LOP1
              RET
        SORT ENDP
        CODE ENDS
              END       START


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值