Merge: doc: fixed some typos and other misc. corrections
[nit.git] / contrib / pep8analysis / tests / privat / 08-liretab.pep
1 ; Sous-programme qui lit un tableau d'entier
2 ; -> utilise des variables globales (c'est pas bien)
3 ; Jean Privat (c) 2011
4 ;
5 ; Programme principal. Invoque simplement la fonction.
6          LDA     tab,i       
7          LDX     tabLen,i    
8          CALL    readTab     
9          STOP                
10 tab:     .BLOCK  10          ; un tableau d'entiers #2d5a
11 tabLen:  .EQUATE 10          ; taille de tab en octets
12 ;
13 ; readTab: lit un tableau d'entiers (de l'input)
14 ; IN: A=tableau d'entiers (mots signés #2d)
15 ;     X=taille du tableau en octets
16 ; En cas de probleme de lecture, le programme s'arrete.
17 readTab: STA     addrt,d     ; sauvegarde le parametre A
18          STX     taille,d    ; sauvegarde le parametre X
19          ADDX    addrt,d     
20          STX     addrfin,d   ; addrfin = addrt + taille
21          LDX     addrt,d     ; for (X=addrt; X<addrfin; X+=2) {
22 readLoop:CPX     addrfin,d   
23          BRGE    rTfin       
24          DECI    0,x         ;   *addrt = readInt();
25          ADDX    2,i         
26          BR      readLoop    ; } // fin for
27 rTfin:   LDX     taille,d    ; restaure X
28          RET0                
29 ; variables ``locales'' du sous-programme
30 taille:  .BLOCK  2           ; la taille du tableau en octets #2d
31 addrt:   .BLOCK  2           ; l'adresse du tableau #2h
32 addrfin: .BLOCK  2           ; l'adresse de fin du tableau #2h
33          .END