MAIN
	PRINT  CALL 
 BEGIN 
	MOVE TEMP 23 
 BEGIN 
	MOVE TEMP 24 HALLOCATE  4 
	MOVE TEMP 25 HALLOCATE  4 
	HSTORE TEMP 24  0 Fac_ComputeFac 
	HSTORE TEMP 25  0 TEMP 24 
 RETURN 
TEMP 25 
END
	HLOAD TEMP 21 TEMP 23  0 
	HLOAD TEMP 22 TEMP 21  0 
 RETURN 
TEMP 22 
END
(TEMP 23  10 )
END

Fac_ComputeFac  [ 2 ] 
 BEGIN 
	CJUMP  LT TEMP 1  1 L2 
	MOVE TEMP 20  1 
	JUMP L3 
L2 	MOVE TEMP 20  TIMES TEMP 1  
	CALL 
 BEGIN 
	MOVE TEMP 29 TEMP 0 
	HLOAD TEMP 27 TEMP 29  0 
	HLOAD TEMP 28 TEMP 27  0 
 RETURN 
TEMP 28 
END
(TEMP 29  MINUS TEMP 1  1 )
L3 	NOOP 
 RETURN 
TEMP 20 
END

