BANKSEL Example

MPASM Assembler

BANKSEL Example

Directives highlighted in this example are:

  • banksel

Program Functional Description

This program demonstrates the utility of the banksel directive. This directive generates the appropriate code to set/clear the RP0 and RP1 bits of the STATUS register.

Commented Code Listing

list p=16f877 ;Select the device.

#include <p16f877.inc> ;Include standard header file

;for the selected device.

group1 udata H'20' ;group1 data stored at locations

;starting at H'20'(bank 0).

group1_var1 res 1 ;group1_var1 located at H'20'.

group1_var2 res 1 ;group1_var2 located at H'21'.

group2 udata H'A0' ;group2 data stored at locations

;starting at H'A0'(bank 1)

group2_var1 res 1

group2_var2 res 1

RST CODE H'0' ;The code section named RST

;is placed at H'0'. The

;instruction 'goto start' is

;placed in code section RST

goto start ;Jumps to the location labelled

;'start'.

INTRT CODE H'4' ;The code section named INTRT is

;placed at H'4'. The instruction

;'goto service_int' is placed in

;code section INTRT.

goto service_int ;Jumps to the location labelled

;'service_int'.

PGM CODE ;This is the beginning of the

;code section named PGM. It is a

;relocatable code section since

;no absolute address is given

;along with directive 'CODE'.

start

banksel group1_var1 ;This directive generates code

;to set/clear bank select bits

;RP0 & RP1 of STATUS register

;depending upon the address of

;group1_var1.

clrf group1_var1

clrf group1_var2

banksel group2_var1 ;This directive generates code

;to set/clear bank select bits

;RP0 & RP1 of STATUS register

;depending upon the address of

;group2_var1.

clrf group2_var1

clrf group2_var2

goto $

service_int

retfie

end


Microchip Technology Inc.
Microchip's Web Site
Voice: (480) 792-7200
Fax: (480) 899-9210
Microchip's E-mail Address
PreviousNext