代码及注释
DATA SEGMENT
A DW 1223,83,456,355,89
DW 948,5,123,789,567
CNT EQU ($-A)/2
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV CX,CNT-1
LOOP1:MOV DX,CX
MOV SI,0 ;每次排序都是从头开始的
LOOP2:MOV AX,A[SI] ;比较当前值与其下一个数
CMP AX,A[SI+2]
JNA L1 ;小于等于,即这两个数的顺序是递增的则跳转,直接进行后续操作
XCHG AX,A[SI+2] ;否则交换两值
MOV A[SI],AX
L1:ADD SI,2 ;LOOP2内循环中每次SI向后一位
LOOP LOOP2
MOV CX,DX ;实现细节与题目四中相同
LOOP LOOP1
MOV AH,4CH
INT 21H
CODE ENDS
END START
离线