UDATA Example
Directives highlighted in this example are:
Program Functional Description
This program demonstrates the utility of the
udata
directive, which declares the beginning of a section of uninitialized data. This directive is used when generating an object file.Commented Code Listing
list p=16f877 ;Select the device.
#include <p16f877.inc> ;Include standard header file
;for the selected device.
group1 udata 0x20 ;group1 data stored at locations
;starting at 0x20.
group1_var1 res 1 ;group1_var1 located at 0x20.
group1_var2 res 1 ;group1_var2 located at 0x21.
group2 udata ;Declaration of group2 data. The
;addresses for variables under
group2_var1 res 1 ;this data section are allocated
group2_var2 res 1 ;automatically by the linker.
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
start ;with directive 'CODE'.
banksel group1_var1
clrf group1_var1
clrf group1_var2
banksel 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 |