Fall 2009: ECE 209 C to LC3 vol. I

Here are the five C functions we'll use in our initial set of LC3 translation assignments.

Swap integers

void swap(int *a, int *b) {
  int t ;
  t = *a ;
  *a = *b ;
  *b = t ;
}

Swap integers within array

void Swap2and3(int a[]) {
  swap(&a[2], &a[3]) ;
}

Find biggest odd integer in array

int findMostOdd(int a[], int n) {
  int r = 0 ;
  int i ;
  for (i=0; i<n; ++i) {
    if ((a[i] & 1) && (r==0 || a[i] > r))
       r = a[i] ;
  }
  return r ;
}

Slow Fibonacci

int badFib(int n) {
  if (n <= 1)
    return 1 ;
  else
    return badFib(n-1) + badFib(n-2) ;
}

Fetch and Add

int FetchAndAdd(int y) {
  static int accumulator = 0 ;
  return accumulator += y ;
}