ORG 000H
SJMP START
RESH EQU 30H
RESL EQU 30H
TEMP EQU 50H
START : MOV A,#_H /* ENTER THE NO. TO FIND THE FACTORIAL */
MOV R0,#31H
MOV RESL,A
MOV R1,A
ABOVE : DJNZ R1,DOWN
SJMP EXIT
DOWN : ACALL MULTIPLY
SJMP ABOVE
EXIT : SJMP EXIT
MULTIPLY : MOV A,@R0
MOV B,R1
MUL AB
MOV @R0,A
MOV TEMP,B
DEC R0
MOV A,@R0
MOV B,R1
MUL AB
ADD A,TEMP
MOV @R0,A
INC R0
RET END
SJMP START
RESH EQU 30H
RESL EQU 30H
TEMP EQU 50H
START : MOV A,#_H /* ENTER THE NO. TO FIND THE FACTORIAL */
MOV R0,#31H
MOV RESL,A
MOV R1,A
ABOVE : DJNZ R1,DOWN
SJMP EXIT
DOWN : ACALL MULTIPLY
SJMP ABOVE
EXIT : SJMP EXIT
MULTIPLY : MOV A,@R0
MOV B,R1
MUL AB
MOV @R0,A
MOV TEMP,B
DEC R0
MOV A,@R0
MOV B,R1
MUL AB
ADD A,TEMP
MOV @R0,A
INC R0
RET END
No comments:
Post a Comment