B_1.gif (1135 bytes)

INICIO WEB

B_2.gif (1184 bytes)

          

DIRECTIVAS DE DISTRIBUCIÓN O DEFINICIÓN DE DATOS

           

Estas directivas definen valores temporales o reservan memoria.

       

Estas directivas son las siguientes: DB, DC16, DC24, DC32, DC8, DD, DP, DS, DS16, DS24, DS32, DS8 y DW.

          

Sintaxis

       

DB expr

DC16 expr [, expr] ...

DC24 expr [, expr] ...

DC32 expr [, expr] ...

DC8 expr [, expr] ...

DD expr [, expr]

DP expr [, expr]

DS expr [, expr]

DS16 expr [, expr] ...

DS24 expr [, expr] ...

DS32 expr [, expr] ...

DS8 expr [, expr] ...

DW expr [, expr]
             

Parámetros

      
  • expr: Una expresión válida absoluta, cambiable, o externa o una cadena ASCII

         

Descripción

        

Utilice DB, DC8, DC16, DC24, DC32, DD, DP o DW para reservar e inicializar el espacio de memoria.

          

Utilice DS, DS8, DS16, DS24 o DS32 para reservar un espacio de memoria no inicializado.

          

Ejemplos

           

Generación de tabla de consulta

El siguiente ejemplo genera una tabla de consulta de direcciones a las rutinas.

            

                 NAME              table

                 RSEG              CONST

table          DW                  addsubr / 2, subsubr / 2, clrsubr / 2

                 RSEG              CODE

addsubr    ADD                 R16, R17

                RET

subsubr    SUB                  R16, R17

                RET

clrsubr     CLR                  R16

                RET
        

                END

       

En la arquitectura AVR, las direcciones de código son direcciones de tipo word y en el IAR AVR Assembler, las etiquetas son direcciones de tipo byte. Esto implica que un puntero de funciones debe ser dividido por dos antes que se utilice un ICALL, EICALL, IJMP o EIJMP. Esto puede hacerse o en la tabla o con instrucciones antes de la instrucción call/jmp.

         

Definición de una cadena (string)

Para definir una cadena:

        

mymsg      DC8          ’Please enter your name’

           

Reserva de espacio

Para reservar espacio para 0xA bytes:

       

Table         DS8          0xA

                 
                                         

B_1.gif (1135 bytes)

B_3.gif (1151 bytes)

B_2.gif (1184 bytes)