DATA SEGMENT
X1 DB ?,'$'
X2 DB ?,'$'
X3 DB ?,'$'
X4 DB ?,'$'
X5 DB ?,'$'
X6 DB ?,'$'
X7 DB ?,'$'
X8 DB ?,'$'
X9 DB ?,'$'
X10 DB ?,'$'
RESULT DB 4 DUP('$')
DATA ENDS
STACK SEGMENT PARA STACK 'STACK'
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
BEGIN: MOV AX,DATA
MOV DS,AX
MOV ES,AX
CALL READNUM ;讀入十個數,B並轉成二進制數
;輸入數據以‘,’隔開且最後以','結束
LEA DI,RESULT
CALL MAX ;求最大值
CALL MIN ;求最小值
LEA DX,RESULT
MOV AH,9
INT 21H
MOV AH,1
INT 21H
MOV AH,4CH
INT 21H
READNUM PROC
PUSH AX
PUSH CX
PUSH BX
PUSH DX
LEA BX,X1
CALL INPUT
LEA BX,X2
CALL INPUT
LEA BX,X3
CALL INPUT
LEA BX,X4
CALL INPUT
LEA BX,X5
CALL INPUT
LEA BX,X6
CALL INPUT
LEA BX,X7
CALL INPUT
LEA BX,X8
CALL INPUT
LEA BX,X9
CALL INPUT
LEA BX,X10
CALL INPUT
POP DX
POP BX
POP CX
POP AX
RET
READNUM ENDP
INPUT PROC
MOV AH,1
INT 21H
AND AL,0FH
MOV DL,AL
MOV AH,1
INT 21H
CMP AL,'/'
JNC PLO1
MOV [BX],DL
JMP HTT
PLO1: AND AL,0FH
MOV [BX],AL
MOV AL,DL
MOV CL,10
MUL CL
ADD AL,[BX]
MOV [BX],AL
MOV AH,1
INT 21H
HTT: RET
INPUT ENDP
MAX PROC
PUSH AX
PUSH CX
PUSH BX
PUSH DX
LEA BX,X1
MOV AL,[BX]
LEA BX,X2
CALL MAXNUM
LEA BX,X3
CALL MAXNUM
LEA BX,X4
CALL MAXNUM
LEA BX,X5
CALL MAXNUM
LEA BX,X6
CALL MAXNUM
LEA BX,X7
CALL MAXNUM
LEA BX,X8
CALL MAXNUM
LEA BX,X9
CALL MAXNUM
LEA BX,X10
CALL MAXNUM
CMP AL,10
JNC PLO3
ADD AL,30H
MOV [DI],AL
INC DI
JMP HTL
PLO3: CALL BTOBCD
HTL: POP DX
POP BX
POP CX
POP AX
RET
MAX ENDP
MAXNUM PROC
CMP AL,[BX]
JC PLO2
JMP HLL
PLO2: MOV AL,[BX]
HLL: RET
MAXNUM ENDP
BTOBCD PROC
PUSH DX
MOV DL,0
AGAIN: SUB AL,0AH
JS NEXT
INC DL
JMP AGAIN
NEXT: ADD AL,0AH
ADD DL,30H
MOV [DI],DL
INC DI
ADD AL,30H
MOV [DI],AL
INC DI
POP DX
RET
BTOBCD ENDP
MIN PROC
PUSH AX
PUSH CX
PUSH BX
PUSH DX
LEA BX,X1
MOV AL,[BX]
LEA BX,X2
CALL MINNUM
LEA BX,X3
CALL MINNUM
LEA BX,X4
CALL MINNUM
LEA BX,X5
CALL MINNUM
LEA BX,X6
CALL MINNUM
LEA BX,X7
CALL MINNUM
LEA BX,X8
CALL MINNUM
LEA BX,X9
CALL MINNUM
LEA BX,X10
CALL MINNUM
CMP AL,10
JNC PLO5
ADD AL,30H
MOV [DI],AL
INC DI
JMP HHL
PLO5: CALL BTOBCD
HHL: POP DX
POP BX
POP CX
POP AX
RET
MIN ENDP
MINNUM PROC
CMP AL,[BX]
JNC PLO4
JMP HHT
PLO4: MOV AL,[BX]
HHT: RET
MINNUM ENDP
CODE ENDS
END BEGIN