B_1.gif (1135 bytes)

INICIO WEB

B_2.gif (1184 bytes)

          
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

 

                                         

B_1.gif (1135 bytes)

B_3.gif (1151 bytes)

B_2.gif (1184 bytes)