理解下面的程序,完成对数据段中数据的从小到大排序,并输出

输出功能块label2我已给出,通过CALL和RET实现调用。

DATAS SEGMENT
DB 2,5,6,8,3,7,4,9,2,6,1
DATAS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX

 ;输出原来排序
 mov  cx, 9
 mov  bx,0
 call label2
 ;把DATAS中的数从小到大排序


 ;换行
 mov dl, 10
 MOV  AH,6
 INT  21H
 mov dl, 13
 MOV  AH,6
 INT  21H
 ;输出新排序
 mov  cx, 9
 mov  bx,0
 call label2

 MOV  AH,4CH
 INT  21H


 ;输出排序子程序

label2:

mov dl, [bx]
add dl, 30H
MOV AH,6
INT 21H
INC BX
loop label2
ret

CODES ENDS
END START

如图:
图片说明