汇编编写的 冒泡排序

这篇博客介绍了如何使用汇编语言实现冒泡排序算法。通过详细的代码展示,阐述了冒泡排序的基本步骤,包括外循环和内循环的设置,以及在循环中进行的两数比较和交换操作。整个过程在内存中的数据段(DATA)中进行,利用栈段(STACKSG)进行辅助。

STACKSG       SEGMENT    STACK 'S'              

                      DW   64   DUP('ST')

STACKSG      ENDS

DATA             SEGMENT

ARY              DW   5,7,1,4,3,6,9,8,2      ;数组,流程图中为A

CT               EQU  ($-ARY)/2               ;元素个数

DATA            ENDS

CODE            SEGMENT

                  ASSUME   CS:CODE,DS:DATA,SS:STACKSG

MAIN            PROC   FAR              

             MOV   AX,DATA              

             MOV   DS,AX

             MOV   DI,CT-1           ;初始化外循环次数

LOP1:        MOV   CX,DI         ;置内循环次数 

             MOV   BX,0              ;置地址指针

LOP2:        MOV   AX,ARY[BX]    

             CMP   AX,ARY[BX+2]       ;两数比较

             JGE    CONT                ;次序正确转

                                                ;次序不正确互换位置

            XCHG   AX,ARY[BX+2] 

            MOV   ARY[BX],AX

CONT:       ADD    BX,2                ;修改地址指针

            LOOP   LOP2              ;内循环控制

            DEC    DI                     ;修改外循环次数

            JNZ       LOP1            ;外循环控制

            MOV   AX,4C00H

            INT    21H

            MAIN   ENDP

            CODE   ENDS

            END    MAIN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值