Factorial (Recursive)

 

Aim:

To implement a program that computes the factorial of a number in recursive manner. 

 

Instructions:

The program computes the factorial of a number in recursive manner and its equivalent low-level instructions executed by the hardware. The low-level instructions used are: 

rem It performs division operation of the values contained in two registers and puts the remainder in the first register. 
rcopy Passing variable value back to caller function. 
push It pushes a variable on to the stack. 
pop It pops out the variable out of the stack 
store It stores the value from the given register to the global or local variable. 
out It prints the output value to the screen. 
neq Check if the values in two registers are different. 
mul It multiplies the values contained in two registers and puts the result in the first register. 
lcopy Local copying- used to copy the value of a variable within the same memory segment. 
load It loads a value of a global or local variable to the given register. 
label Is used to mark the position in the low-level instructions to enable jumping to the marked position. 
in It reads the input from the user and stores it in a variable. 
if_true Checks if the condition evaluated to true. 
if_false Checks if the condition evaluated to be false. 
freturn It returns the control from the called function to the caller. 
fenter It changes the control of execution to the called function. 
fcall It initiates a call to the given function. 
exit Signifies the end of program. 
div It divides the values contained in two registers and puts the result in the first register. 
copy It copies the value of a variable between segments of memory. 
assign It assigns a value to a variable