UDATA Example

MPASM Assembler

UDATA Example

Directives highlighted in this example are:

  • udata

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
PreviousNext