Professional Documents
Culture Documents
Program To Calculate Factorial Using A Subroutine
Program To Calculate Factorial Using A Subroutine
section .data
prompt db 'Enter a number: ', 0
result_msg db 'The factorial is: ', 0
format db "%d", 0
section .bss
num resd 1
factorial resd 1
section .text
global main
extern printf, scanf
main:
; Prompt for the number
mov eax, 0
lea edi, [prompt]
call printf
calc_factorial:
; Input: EAX = number
; Output: EAX = factorial
; Modifies: EAX, EBX, ECX
.loop:
mul ecx ; Multiply factorial by current number
inc ecx ; Increment current number
cmp ecx, ebx ; Compare current number with input number
jle .loop ; Loop until current number <= input number