题目描述
数据按字节存储,按降序排序,实现排序。
DATA SEGMENT
A DB 12,11,5,9,3
DB 18,4,1,7,2
CNT EQU $-A
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV CX,CNT-1 ;CX置为初始循环次数
MOV BX,0
LOOP1:MOV DX,CX
MOV SI,1 ;因为改为DB,SI初始为1
LOOP2:MOV AL,A[BX]
CMP AL,A[BX+SI] ;比较两值
JNB L1 ;大于等于则直接跳转,进行后续步骤
XCHG AL,A[BX+SI]
MOV A[BX],AL ;否则交换两值
L1:INC SI ;改为DB,SI每次增加1
LOOP LOOP2
ADD BX,1 ;改为DB,BX每次增加1
MOV CX,DX ;细节注意,内循环,即LOOP2的循环次数每次都会减小1,而CX在经过下一个语句LOOP LOOP1时已经回减小1,再存入DX,再下一次取出时又被减小1,以此来实现每次CX都逐渐减小
LOOP LOOP1
MOV AH,4CH
INT 21H
CODE ENDS
END START
离线