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 |
|
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 |