ROR BX,1
MOV AX,WORD PTR[DI][BX-2] CMP AX,WORD PTR[DI][BX] JAE LINE2
MOV CX,WORD PTR[DI][BX] MOV WORD PTR[DI][BX],AX MOV WORD PTR[DI][BX-2],CX JMP LINE2 LINE3: RET
I DW ?
J DW ? BUBBLESORT ENDP
;===============================================
; 键盘输入数值数组子程序(数组名为array,元素个数存放在num中)
INPUTNUM PROC NEAR
; 输入的数据以一个空格分隔,以回车符结束输入
LEA DI,ARRAY ;将数组第一个元素的有效地址置入DI
MOV WORD PTR[NUM],0 STIN:
MOV AX,0 PUSH AX AGAIN1:
MOV AH,1 INT 21H
MOV BYTE PTR[CHAR],AL CMP AL,13 JE LINE0 CMP AL,' ' JE LINE0 SUB AL,30H MOV AH,0 MOV SI,AX POP AX MOV CL,10 MOV CH,0 MUL CX ADD AX,SI PUSH AX JMP AGAIN1
LINE0:
POP AX
MOV WORD PTR[DI],AX INC WORD PTR[NUM] CMP BYTE PTR[CHAR],13 JE STINEND INC DI INC DI JMP STIN STINEND: RET
ARRAY DW 100 DUP(0) NUM DW 0 CHAR DB ? INPUTNUM ENDP
;=============================================== DISPAX PROC NEAR PUSH BX PUSH CX PUSH DX PUSH SI
PUSH DS PUSH CS POP DS PUSH AX MOV AH,2 MOV DL,32 INT 21H POP AX
MOV BYTE PTR NZ,0 PUSH AX LEA SI,DIVARR MOV CX,5 @1:
POP AX MOV DX,0 MOV BX,[SI] DIV BX PUSH DX CMP AL,0 JNE @2
CMP BYTE PTR NZ,1 JE @2
CMP CX,1 JE @2 MOV DL,20H JMP @3 @2:
ADD AL,30H MOV DL,AL MOV BYTE PTR NZ,1 @3:
MOV AH,2 INT 21H INC SI INC SI LOOP @1 POP DX POP DS POP SI POP DX POP CX POP BX RET
DIVARR DW 10000,1000,100,10,1