Find the factorial of a number

Statement: Program to calculate the factorial of a number between 0 to 8




Source program :
  • LXI SP, 27FFH ; Initialize stack pointer
  • LDA 2200H ; Get the number
  • CPI 02H ; Check if number is greater than 1
  • JC LAST
  • MVI D, 00H ; Load number as a result
  • MOV E, A
  • DCR A
  • MOV C,A ; Load counter one less than number
  • CALL FACTO ; Call subroutine FACTO
  • XCHG ; Get the result in HL
  • SHLD 2201H ; Store result in the memory
  • JMP END
  • LAST: LXI H, 000lH ; Store result = 01
  • END: SHLD 2201H
  • HLT
Subroutine Program:
  • FACTO:LXI H, 0000H
  • MOV B, C ; Load counter
  • BACK: DAD D
  • DCR B
  • JNZ BACK ; Multiply by successive addition
  • XCHG ; Store result in DE
  • DCR C ; Decrement counter
  • CNZ FACTO ; Call subroutine FACTO
  • RET ; Return to main program
Flowchart for program
43-Find the factorial of a number

Post a Comment

0 Comments

Close Menu