Sugerencias para la programación |
Esta sección nos da sugerencias para escribir un código eficiente para el AVR IAR Assembler. |
IAR incluye archivos cabecera específicos para los AVRs. Los archivos cabecera se llaman iochip.h, por ejemplo io8515.h, y define los registros de funciones especiales (SFRs) del procesador. Como los archivos cabecera se han hecho para ser usados con el AVR C Compiler, la declaración de los SFRs está hecha con macros. Las macros que convierten las declaraciones a sintaxis de ensamblador o de compilador se encuentran en el archivo iomacro.h. Paso de código ensamblador del "ATMEL AVR Assembler" al "AVR IAR Assembler" Aunque el ATMEL AVR Assembler y el AVR IAR Assembler usan el mismo nemónico para las instrucciones, no usan las mismas directivas de ensamblador. Tampoco tratan de la misma manera las etiquetas en el espacio de código. Esta sección muestra como se pasa el código del ATMEL AVR Assembler al AVR IAR Assembler. El AVR IAR Assembler soporta todas las directivas del ATMEL AVR Assembler excepto dos. La diferencia se encuentra en el formato de las directivas. Las dos directivas no soportadas son ".DEVICE" y ".EXIT". A continuación se encuentra una tabla donde se muestra el paso de las directivas ATMEL a las directivas IAR. |
Formato del ATMEL AVR Assembler | Formato del AVR IAR Assembler |
label: .BYTE size |
label: DS8 size |
.CSEG |
RSEG segment name:CODE: segment flags |
.DB data1,data2,data3 | DB data1,data2,data3 |
.DEF name = value |
#define name value |
.DSEG |
RSEG segment name:DATA: segment flags |
.DW data1,data2,data3 |
DW data1,data2,data3 |
.ENDMACRO |
ENDM |
.EQU label = expression |
label EQU expression |
.ESEG |
RSEG segment name:XDATA: segment flags |
.INCLUDE file |
#include file |
.LIST |
LSTOUT+ |
.LISTMAC |
LSTEXP+ |
.MACRO macroname |
macroname MACRO arguments... |
.NOLIST |
LSTOUT- |
.ORG expression |
ORG expression |
.SET label = expression |
label VAR expression |