0

I'm using M68000 chips so pseudocode is fine. I can easily write this program but I am having trouble implementing the use of stack (push, call, pop) to this algorithm, I been here for hours and still couldn't find a way. Please someone provide a detailed pseudocode for Fibonacci.

nrz
  • 10,435
  • 4
  • 39
  • 71
xpluffy
  • 79
  • 1
  • 2
  • 9
  • _"I am having trouble implementing the use of stack to this algorithm"_ What specifically is the problem? What does your current code look like? – Michael Dec 10 '13 at 10:18
  • Can you show your attempt? – lurker Dec 10 '13 at 14:24
  • I'm working on your question. In the meantime, I would suggest you to try to implement an iterative version of Fibonacci's series: it could be easier to implement and it could save you from ... ... ... Stack Overflow(s). Lol. – znpy Jan 04 '14 at 00:42

1 Answers1

0

Here is an implementation in C. Should be straightforward to translate to ASM.

#include<stdio.h>

int main()
{
   int n, first = 0, second = 1, next, c;

   printf("Enter the number of terms\n");
   scanf("%d",&n);

   printf("First %d terms of Fibonacci series are :-\n",n);

   for ( c = 0 ; c < n ; c++ )
   {
      if ( c <= 1 )
         next = c;
      else
      {
         next = first + second;
         first = second;
         second = next;
      }
      printf("%d\n",next);
   }

   return 0;
}

The M68000 has enough registers to do this without push but if you have to use this instruction for a homework assignment, then you could make use of it in the else clause where the variables are exchanged, thus limiting yourself to using a minimum of registers. Same could be said for the loop.

Devolus
  • 21,661
  • 13
  • 66
  • 113