Merge: doc: fixed some typos and other misc. corrections
[nit.git] / contrib / pep8analysis / tests / privat / 08-div-vars.pep
1 ; Programme et sous programme de division entière
2 ; Jean Privat (c) 2010
3          DECI    num,d       
4          LDA     num,d       
5          DECI    num,d       
6          LDX     num,d       
7          CALL    div         
8          STA     num,d       
9          DECO    num,d       
10          CHARO   ' ',i       
11          STX     num,d       
12          DECO    num,d       
13          STOP                
14 num:     .BLOCK  2           ; #2d
15 ;
16 ; div: calcule le quotient et le reste d'une division
17 ; Passage des arguments et résultats par registres
18 ; Utilisation d'une variable locale dans la pile
19 ; IN:  A=dividende
20 ;      X=diviseur
21 ; OUT: A=reste
22 ;      X=quotient
23 div:     SUBSP   2,i         ; réserve #diviseur
24          STX     diviseur,s  
25          LDX     0,i         ; X = 0
26 div_loop:CPA     diviseur,s  
27          BRLT    div_fin     ; while(A>=diviseur) {
28          SUBA    diviseur,s  ;   A -= diviseur;
29          ADDX    1,i         ;   X++;
30          BR      div_loop    ; } // fin while
31 div_fin: RET2                ; libère #diviseur
32 diviseur:.EQUATE 0           ; Variable locale #2d
33          .END