ALP to take n values from user and calculate maximum and minimum values
ASSUME CS:CODE,DS:DATA
DATA SEGMENT
LARGE DB ?
SMALL DB ?
STR1 DB "ENTER N :$"
STR2 DB 0AH,"ENTER NUMBER :$"
STR3 DB 0AH,"MAXIMUM NUMBER IS :$"
STR4 DB 0AH,"MINIMUM NUMBER IS :$"
DATA ENDS
CODE SEGMENT
START:
MOV AX,DATA
MOV DS,AX
LEA DX,STR1
MOV AH,09H
INT 21H
MOV AH,01H
INT 21H
SUB AL,30H
MOV CL,AL ; FOR COUNTER
MOV AL,09H ;ASSUMING THAT 9 IS THE MAXIMUM VALUE
MOV SMALL,AL
MOV AL,00H ;ASSUMING THAT 0 IS THE MINIMUM VALUE
MOV LARGE,AL
L:
LEA DX,STR2
MOV AH,09H
INT 21H
MOV AH,01H
INT 21H
SUB AL,30H
MOV BL,AL ;MAKING A COPY OF NUMBER
CMP AL,LARGE
JGE SKIP
MOV AL,LARGE
SKIP:
MOV LARGE,AL
CMP BL,SMALL
JLE SKIP2
MOV BL,SMALL
SKIP2:
MOV SMALL,BL
LOOP L
MOV AL,LARGE
LEA DX,STR3
MOV AH,09H
INT 21H
MOV DX,AX
ADD DX,3030H
MOV AH,02H
INT 21H
MOV AL,SMALL
LEA DX,STR4
MOV AH,09H
INT 21H
MOV DX,AX
ADD DX,3030H
MOV AH,02H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
DATA SEGMENT
LARGE DB ?
SMALL DB ?
STR1 DB "ENTER N :$"
STR2 DB 0AH,"ENTER NUMBER :$"
STR3 DB 0AH,"MAXIMUM NUMBER IS :$"
STR4 DB 0AH,"MINIMUM NUMBER IS :$"
DATA ENDS
CODE SEGMENT
START:
MOV AX,DATA
MOV DS,AX
LEA DX,STR1
MOV AH,09H
INT 21H
MOV AH,01H
INT 21H
SUB AL,30H
MOV CL,AL ; FOR COUNTER
MOV AL,09H ;ASSUMING THAT 9 IS THE MAXIMUM VALUE
MOV SMALL,AL
MOV AL,00H ;ASSUMING THAT 0 IS THE MINIMUM VALUE
MOV LARGE,AL
L:
LEA DX,STR2
MOV AH,09H
INT 21H
MOV AH,01H
INT 21H
SUB AL,30H
MOV BL,AL ;MAKING A COPY OF NUMBER
CMP AL,LARGE
JGE SKIP
MOV AL,LARGE
SKIP:
MOV LARGE,AL
CMP BL,SMALL
JLE SKIP2
MOV BL,SMALL
SKIP2:
MOV SMALL,BL
LOOP L
MOV AL,LARGE
LEA DX,STR3
MOV AH,09H
INT 21H
MOV DX,AX
ADD DX,3030H
MOV AH,02H
INT 21H
MOV AL,SMALL
LEA DX,STR4
MOV AH,09H
INT 21H
MOV DX,AX
ADD DX,3030H
MOV AH,02H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
Comments
Post a Comment