题目
请用冒泡排序法编程将内存ARRAY单元开始存储的一组8位带符号数据按从大到小排列。
方法
冒泡法
程序
DATA SEGMENT
NUM DB 5,9,8,7,3,15
LEN EQU $-NUM
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV CX,LEN
DEC CX ;CX←比较趟数,即外循环次数
LOP1: MOV DX,CX ; 保存外循环次数在DX,内循环比较次数在CX中。
MOV SI,0
LOP2:
MOV AL,NUM[SI]
CMP AL,ANUM[SI+1] ;相邻两数据比较
JAE CONT
XCHG AL,NUM[SI+1]
MOV NUM[SI],AL
CONT :INC SI ;修改数据地址指针
LOOP LOP2 ; 内循环结束
MOV CX,DX ;恢复外循环计数值
LOOP LOP1 ;外循环是否结束
MOV AH,4CH
INT 21H
CODE ENDS
END START
0