7.asm (760B)
1 start: 2 init: 3 clrf PORTA ; make sure port A output latches are low 4 clrf PORTB ; make sure port B output latches are low 5 bsf STATUS,RP0 ; select memory bank 1 6 movlw b'11111111' ; set port A data direction to inputs 7 movwf TRISA 8 movlw b'00000000' ; set port B data direction to outputs 9 movwf TRISB 10 bcf STATUS,RP0 ; select memory bank 0 11 12 VARA equ B20 13 VARB equ B21 14 15 goto main 16 main: 17 btfsc PORTA, 0 18 incf VARA, 0 19 20 btfsc PORTA, 1 21 goto NEXTVAR 22 23 goto main 24 25 NEXTVAR: 26 btfsc PORTA, 0 27 incf VARB, 0 28 29 btfsc PORTA, 1 30 goto ADDITION 31 32 goto NEXTVAR 33 34 ADDITION: 35 movlw 0 36 addwf VARA, 0 37 addwf VARB, 0 38 39 movwf PORTB 40 41 END ; ends the program