assume cs:codesg,ds:datasg,ss:stack
stack segment
db 128 dup(?)
stack ends
;==========================
datasg segment
sourceData db 'sourceData=',0
data20 dw 1,2,8,15,84,47,-45,55,85,21,11,4,5,5,6,0,-4,-8,-9,88
afterSort db 'AfterSortData=',0
printDataSource db 100 dup(1)
myInfo db 'id: name: Ding Biao ',0
address dw data20,printDataSource,sourceData,afterSort,myInfo
datasg ends
;==========================
codesg segment
start:
;==============初始化=================
mov ax,stack
mov ss,ax
mov sp,128
mov ax,datasg
mov ds,ax
;==============初始化=================
;=========原始数据显示================
mov cx,20
mov ax,datasg
mov es,ax
mov bx,address[0]
mov di,address[2]
call dToString
mov dh,8
mov dl,0
mov cl,3
mov si,address[4] ;si 显示字符起始地址
call showStr
mov dh,8
mov dl,20
mov cl,4
mov si,address[2] ;si 显示字符起始地址
call showStr
;=========原始数据显示=================
mov cx,20 ;对20个数进行排序
call sort
;=========排序后数据显示=========
mov cx,20
mov ax,datasg
mov es,ax
mov bx,address[0]
mov di,address[2]
call dToString
mov dh,9
mov dl,0
mov cl,3
mov si,address[6] ;si 显示字符起始地址
call showStr