MAIN
       MOVE TEMP 24 HALLOCATE 4
       MOVE TEMP 25 HALLOCATE 4
       MOVE TEMP 30 Fac_ComputeFac
       HSTORE TEMP 24 0 TEMP 30
       HSTORE TEMP 25 0 TEMP 24
       MOVE TEMP 23 TEMP 25
       HLOAD TEMP 21 TEMP 23 0
       HLOAD TEMP 22 TEMP 21 0
       MOVE TEMP 31 10
       MOVE TEMP 32 CALL TEMP 22( TEMP 23 TEMP 31 )
       PRINT TEMP 32
END
Fac_ComputeFac [2]
BEGIN
       MOVE TEMP 33 1
       MOVE TEMP 34 LT TEMP 1 TEMP 33
       CJUMP TEMP 34 L2
       MOVE TEMP 20 1
       JUMP L3
L2     NOOP
       MOVE TEMP 29 TEMP 0
       HLOAD TEMP 27 TEMP 29 0
       HLOAD TEMP 28 TEMP 27 0
       MOVE TEMP 35 1
       MOVE TEMP 36 MINUS TEMP 1 TEMP 35
       MOVE TEMP 37 CALL TEMP 28( TEMP 29 TEMP 36 )
       MOVE TEMP 38 TIMES TEMP 1 TEMP 37
       MOVE TEMP 20 TEMP 38
L3     NOOP
RETURN
       TEMP 20
END

