TITLE FACTORIAL2 ASSUME CS:KODIKAS, DS:DEDOMENA, ss:soros KODIKAS SEGMENT MAIN PROC MOV AX,DEDOMENA ; APOKATASTASH DS MOV DS,AX ; APOKATASTASH DS LEA DX,MSGU ; MOV AH,9 ; INT 21H ; CALL IN_CONTROL SUB AL,48 CMP AL,0 JE ZERO MOV AH,0 MOV CX,AX LEA DX,MSGF MOV AH,9 INT 21H MOV AX,1 CALL FACTORIAL MOV BL,10 MOV DX,0 MOV CX,0 CALL PRINT JMP TELOS ZERO: LEA DX,MSGZ MOV AH,9 INT 21H TELOS: MOV AH,4CH INT 21H MAIN ENDP IN_CONTROL PROC B1: MOV AH,08H ; EISAGWGH XWRIS EMFANISH INT 21H ; EISAGWGH XWRIS EMFANISH CMP AL,'0' ; SYGKRINOYME AYTO POY PLHKTROLOGI8IKE ME THN ASCII TIMH TOY 0 JB B1 ; AN EINAI MIKROTERH H ASCII TIMH TOY PHGAINE STO "B1" GIA TON EPOMENO XARAKTIRA CMP AL,'7' ; SYGKRINOYME AYTO POY PLHKTROLOGI8IKE ME THN ASCII TIMH TOY 7 JA B1 ; AN EINAI MEGALITERH H ASCII TIMH TOY PHGAINE STO "B1" GIA TON EPOMENO XARAKTIRA MOV DL,AL ; METAFERO STO DL TO XARAKTIRA POY EXOYME EISAGEI MOV AH,2 ; EMFANIZW TON XARAKTIRA POY EXEI O DL INT 21H ; EMFANIZW TON XARAKTIRA POY EXEI O DL RET IN_CONTROL ENDP FACTORIAL PROC CMP CX,1 JE BASE DEC CX CALL FACTORIAL BASE: MUL CX INC CX RET FACTORIAL ENDP PRINT PROC MOV BP,SP CMP AX,0 JE NOMORE DIV BX PUSH DX XOR DX,DX CALL PRINT NOMORE: CMP AH,0 JNE DISPLAY CMP BP,SP JE EXIT DISPLAY: POP DX ADD DL,48 MOV AH,2 INT 21H EXIT: RET PRINT ENDP KODIKAS ENDS DEDOMENA SEGMENT NUM DW 0 result DW 1 MSGU DB "EISAGETE ARITHO TOY 8ADIKOU : $" MSGF DB 10,13,"FACTORIAL IS : $" MSGZ DB 10,13,"FACTORIAL IS : 1 $" BUFFER DB 10 DUB(0) DEDOMENA ENDS END MAIN