Merge: doc: fixed some typos and other misc. corrections
[nit.git] / contrib / pep8analysis / tests / privat / 08-fib.pep
1 ; Programme qui affiche un nombre dans la séquence de Fibonacci
2          DECI    num,d       
3          LDA     num,d       
4          CALL    fib         
5          STA     num,d       
6          DECO    num,d       
7          STOP                
8 num:     .BLOCK  2           
9 ;
10 ;fib: calcule le nième nombre de la séquence de Fibonacci de façon récursive
11 ;     Hint: fib(0) = 0; fib(1) = 1; fib(n) = fib(n-1) + fib(n-2)
12 ;IN:  A=rang dans la séquence
13 ;OUT: A=nombre de fibonacci
14 fib:     SUBSP   4,i         ; reserve #fibN #fibTmp
15          CPA     1,i         
16          BRLE    fib_fin     ; if (A<=1) return A;
17          STA     fibN,s      ; fibN = A;
18          SUBA    1,i         
19          CALL    fib         
20          STA     fibTmp,s    ; fibTmp = fib(fibN-1);
21          LDA     fibN,s      
22          SUBA    2,i         
23          CALL    fib         
24          ADDA    fibTmp,s    ; A = fib(fibN-2) + fibTmp;
25 fib_fin: RET4                ; libère #fibN #fibTmp
26 fibN:    .EQUATE 0           ; variable locale: le paramètre de la fonction #2d
27 fibTmp:  .EQUATE 2           ; variable locale: le résultat du premier appel récursif #2d
28          .END