Computing Factorial - II
Fact = 1;
while ( Num > 0 ) {
Fact = Fact * Num;
Num = Num - 1;
}
Z CS NS RFSEL RFLE ADR ALE BLE F
s2
0 0 000 1 0 -
send
s3
0 0 - 0 0 A
0 0 - 0 0 A
0 0 001 0 1 -
s4
s5
s1
s1
s2
s2
s3
s4
s5
0,1
1
0
0,1
0,1
0,1
Load Num in A
Num = 0 exit
Num > 0 continue
Load Fact in B
Fact = Fact * Num
Num = Num - 1
R0 corresponds to variable Num
R1 corresponds to variable Fact
assumed to be 1 initially
input
outputs
0 1 001 0 0 A*B
0 1 000 0 0 A-1
Previous slide
Next slide
Back to first slide
View graphic version