DSEG SEGMENT
ARRAY DB 55,78H,43,19,0,1,10,80H,0FFH,100
LEN DW $-ARRAY
DEST DW 1000H
CRLF DB 0AH,0DH,'$'
STR1 DW 'THE MAX NUM IS:$'
STR2 DW 'THE MIN NUM IS:$'
DSEG ENDS
CSEG SEGMENT
ASSUME DS:DSEG,CS:CSEG
START:
MOV AX,DSEG
MOV DS,AX
MOV ES,AX
MOV AX,0
MOV CX,LEN
MOV SI,OFFSET ARRAY
MOV DI,DEST
CLD
REP MOVSW
CALL FIND_MIN_MAX
MOV DX,OFFSET STR1
MOV AH,9H
INT 21H
MOV DL,BH
SHR DL,4
CALL PRINT
MOV DL,BH
AND DL,0FH
CALL PRINT
MOV DX,OFFSET ARRAY
MOV AH,9H
INT 21H
MOV DX,OFFSET STR2
MOV AH,9
INT 21H
MOV DL,BH
SHR DL,4
CALL PRINT
MOV DL,BH
AND DL,0FH
CALL PRINT
MOV AL,BH
ADD AL,BL
INTO
ADC AH,0
SAL AX,1
MOV AH,4CH
INT 21H
FIND_MIN_MAX PROC
PUSH AX
PUSH CX
PUSH SI
MOV CX,LEN
MOV SI,DEST
MOV BH,[SI]
MOV BL,[SI]
FIND_LOOP:
MOV AL,[SI]
CMP AL,BH
JBE CMP_MIN
MOV BH,AL
CMP_MIN:
CMP AL,BL
JAE NEXT_ELEMENT
MOV BL,AL
NEXT_ELEMENT:
INC SI
LOOP FIND_LOOP
POP SI
POP CX
POP AX
RET
FIND_MIN_MAX ENDP
PRINT PROC
CMP DL,9
JB NEXT1
ADD DL,7
NEXT1:
ADD DL,30H
MOV AH,02H
INT 21H
RET
PRINT ENDP
CSEG ENDS
END START
TFHHF
最新推荐文章于 2024-10-02 23:46:40 发布