Recursive Factorial Assembly - I
Fact: PUSH(LP)
PUSH(BP) ADDC(SP, 0, BP)
PUSH(r1)
LD(BP, -12, r1) r1 = N
BNE(r1, recur, r31) if (N > 0)
ADDC(r31, 1, r0)
BEQ(r31, rtn, r31) else return 1 ;
Entry
sequence
Body of
Fact
Assume N
is non-negative!
z = Fact( N ) ;
Calling
sequence
PUSH(arg 1) Push argument
BEQ(r31, Fact, LP) Call Fact.
DEALLOCATE( 1 ) Clean up.
1
2
0
Previous slide
Next slide
Back to first slide
View graphic version