aboutsummaryrefslogtreecommitdiff
path: root/debug/programs/ebreak.c
blob: 466c4e72b0a240bda48f1030325de88d8ba65912 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdint.h>

void ebreak()
{
    asm volatile("ebreak");
}

unsigned int fib(unsigned int n)
{
    if (n == 0) {
        return 0;
    }

    unsigned int a = 0;
    unsigned int b = 1;

    for (unsigned int i = 1; i < n; i++) {
        unsigned int next = a + b;
        a = b;
        b = next;
        ebreak();
    }

    return b;
}

int main()
{
begin:
    fib(4);
}