و منتق برنامه اینه که اگه عددی که کاربر وارد میکنه از ماکزیمم بیشتر ماکز بشه اون عدد و بعدش شرط مین هم چک میشه
MOV AH,09H
LEA DX,S
INT 21H
MOV AH,01H
INT 21H
MOV MIN_NUM,AL
MOV MAX_NUM,AL
MOV AH,06H
MOV AL,0
MOV CX,0
MOV DH,24
MOV DL,79
MOV BH,00001001B
INT 10H
JMP L2
FOR:
MOV AH,06H
MOV AL,0
MOV CX,0
MOV DH,24
MOV DL,79
MOV BH,00001001B
INT 10H
MOV AH,02H
MOV BX,0
MOV DX,0
INT 10H
MOV AH,09H
LEA DX,S
INT 21H
MOV AH,01H
INT 21H
SUB AL,30H
CMP MAX_NUM,AL
JNA L4
ADD AL,30H
MOV MAX_NUM,AL
L4:
CMP AL,30H
JB L5
CMP AL,39H
JA L5
CMP MIN_NUM,AL
JNB L2
ADD AL,30H
MOV MIN_NUM,AL
JMP L2
L5:
SUB AL,30H
CMP MIN_NUM,AL
JNB L2
ADD AL,30H
MOV MIN_NUM,AL
;---------
L2:
;SOAL
;CLEAR SCREAN
MOV AH,06H
MOV AL,0
MOV CX,0
MOV DH,24
MOV DL,79
MOV BH,00001001B
INT 10H
;------MOV X,Y
MOV AH,02H
MOV BX,0
MOV DX,0
INT 10H
;------
MOV AH,09H
LEA DX,STR
INT 21H
MOV AH,01H
INT 21H
CMP AL,'Y'
JE FOR
MOV AH,06H
MOV AL,0
MOV CX,0
MOV DH,24
MOV DL,79
MOV BH,00001001B
INT 10H
MOV AH,09H
LEA DX,ENDL
INT 21H
MOV AH,09H
LEA DX,MAXSTR
INT 21H
MOV AH,02H
MOV DL,MAX_NUM
INT 21H
MOV AH,09H
LEA DX,ENDL
INT 21H
MOV AH,09H
LEA DX,MINSTR
INT 21H
MOV AH,02H
MOV DL,MIN_NUM
INT 21H
اول برنامه یک عدد گرفته میشه و هم ماکز و هم مین برابر اون عدد میشه
و بعد تا وقتی کاربر در جواب اینکه ادامه میدید بگه Y (حرف بزرگ) که اونم میتونید OR بنویسید عدد گرفتن ادامه پیدا میکنه
و بعدش اگه گفت نه میاد بزرگ و کوچیک و چاپ میکنه
(بازم شرمنده باید برم جایی اونجور که باید توضیح ندادم)
امیدوارم استفاده کنید