;  - Sample programs using assembly language in PIC -

; mcu = pic16f84A

; simulate using picsimulatoride

; Set up the pins of the microcontroller

        BSF STATUS,5      ; BIT SET ON PIN 5 OF STATUS REGISTER

                                    ; FROM BANK0 TO BANK1 ON REGISTER FILE MAP

        MOVLW 0X00        ; MOVE LITERAL VALUE 0000 0000

        MOVWF TRISA     ; SET ALL PORTA PINS AS OUTPUT

        BCF STATUS,5      ; BIT CLEAR ON PIN 5 OF STATUS REGISTER

                                     ; FROM BANK1 TO BANK0 ON REGISTER FILE MAP

       MOVLW 0X64            ; MOVE LITERAL VALUE DECIMAL 100 TO W REGISTER

       MOVWF 0X21            ; STORE DECIMAL VALUE 100 TO 0X21

;main program , this is an ON/OFF light program

MAIN    MOVLW 0XFF            ; MOVE LITERAL VALUE 11111 TO W REGISTER

            MOVWF PORTA        ; SET HIGH OUTPUT ON PINS 0,1,2,3 AND 4

            CALL DELAY             ; SET SOME DELAY

            MOVLW 0X00            ; MOVE LITERAL VALUE 00000 TO W REGISTER

            MOVWF PORTA        ; SET LOW OUTPUT ON PINS 0,1,2,3 AND 4

            CALL DELAY             ; SET DELAY

            GOTO MAIN

DELAY    DECFSZ 0X20,1        ; DECREMENT BY 1 THE VALUE IN 0X20

            GOTO DELAY            ; GO TO LABEL DELAY

            DECFSZ 0X21,1            ; DECREMENT BY 1 THE VALUE IN 0X21

            GOTO DELAY            ; GO TO LABEL DELAY

            MOVLW 0X64            ; MOVE LITERAL VALUE DECIMAL 100 TO W REGISTER

            MOVWF 0X21            ; STORE DECIMAL VALUE 100 TO 0X21

            RETURN                    ; RETURN

END                                        ; END OF PROGRAM