是对输入的字数据插入排序并输出
DATASEGMENT
ARRAYDW40DUP(0)
Adb4,?,4dup(?)
NDW1DUP(0)
DATAENDS
CODESEGMENT
ASSUMEDS:DATA,CS:CODE
START:MOVAX,DATA
MOVDS,AX
MOVN,20
movdx,offsetA
movah,0ah
int21h
movah,2
movdl,10
int21h
movdl,13
int21h
movdi,offsetA+2
movcl,A+1
movch,0
movax,0
lp0:
movbx,10
mulbx
movbl,[di]
subbl,30h
movbh,0
addax,bx
incdi
looplp0
MOVBX,offsetARRAY
MOVSI,0
MOV[BX+SI],AX
STEP1:movdx,offsetA
movah,0ah
int21h
movah,2
movdl,10
int21h
movdl,13
int21h
movdi,offsetA+2
movcl,A+1
movch,0
movax,0
lp1:
movbx,10
mulbx
movbl,[di]
subbl,30h
movbh,0
addax,bx
incdi
looplp1
ADDSI,2
CMPSI,N
JAEOP1
CMPAX,0
JEOP1
MOVDI,SI
MOVDX,AX
STEP2:SUBDI,2
CMPDI,0
JBEINSERT
CMPDX,[BX+DI]
JAEINSERT
MOVCX,[BX+DI]
MOV[BX+DI+2],CX
JMPSTEP2
INSERT:MOV[BX+DI+2],DX
JMPSTEP1
OP1:MOVN,SI
MOVSI,0
OP2:MOVDI,OFFSETA
MOVAX,[BX+SI]
ADDSI,2
L1:MOVBX,10
DIVBX
MOV[DI],DX
INCDI
CMPAX,0
JNEL1
L2:MOVAX,OFFSETA
MOVDX,[DI]
ADDDX,30H
MOVAH,02H
INT21H
DECDI
CMPAX,DI
JNEL2
movah,2
movdl,20h
int21h
CMPSI,N
JAEEXIT
JMPOP2
EXIT:MOVAH,4CH
INT21H
CODEENDS
ENDSTART
分 -->
|