B_1.gif (1135 bytes)

INICIO WEB

B_2.gif (1184 bytes)

  

INTRODUCCIÓN AL AVR IAR ASSEMBLER

          

Este apartado describe el formato del código fuente para el "AVR IAR Assembler". También proporciona consejos para la programación en lenguaje ensamblador y describe los símbolos y expresiones que se deben utilizar.

            
 

Formato de fuente

 

El formato de una línea fuente en ensamblador es de la siguiente forma:

   

[etiqueta [:] ] [operación] [operandos] [; comentario]

   

Etiqueta = Una etiqueta que se asigna el valor y tipo del contador de posición de programa actual (PLC). Los dos puntos (:) son opcionales si la etiqueta empieza en la primera columna.

Operación = Una instrucción o directiva en ensamblador. No debe empezar en la primera columna.

Operando = Una instrucción en ensamblador puede tener cero, uno o dos operandos.

    

Las directivas de definición de datos, DB y DC8 por ejemplo, pueden tener cualquier número de operandos. Otras directivas de ensamblador pueden tener uno, dos o tres operandos separados por comas.

Comentario = Precedido por un ;

     

Los campos pueden separarse por espacios o por tabulador. Una línea de código no debe pasar de 2047 caracteres.

          
                 

Expresiones en ensamblador

     

Las expresiones pueden consistir en operandos y operadores. El ensamblador admite un amplio rango de expresiones, incluidas las operaciones aritméticas y lógicas. Todos los operadores utilizan enteros en complemento a dos de 32 bit y la verificación del rango sólo se realiza cuando un valor se utiliza para generar código.

     

Los siguientes operandos son válidos en una expresión:

        

- Etiquetas y símbolos definidos por el usuario.

- Constantes, excluidas las constantes de punto flotante.

- $, el símbolo del contador de posición de programa (PLC).
     

TRUE y FALSE

      

En las expresiones un cero es considerado como FALSE y un valor diferente a cero es considerado como TRUE.

Las expresiones condicionales devuelven un valor 0 para FALSE y un 1 para TRUE.

            

Símbolos

          

Los símbolos definidos por el usuario pueden tener hasta 255 caracteres de longitud. Los símbolos deben empezar por letra, "a-z" o "A-Z", "?" (interrogación) o "_" . Los símbolos pueden incluir dígitos "0-9" y "$".

          

Etiquetas

        

A los símbolos usados para posiciones de memoria se les llama etiquetas.

        

Constantes enteras

       

Como IAR utiliza una aritmética interna de complemento a dos de 32 bit, los enteros tienen un rango de –2147483648 a 2147483647.

Las constantes se escriben como una secuencia de dígitos con un signo – opcional para indicar que es un número negativo. No se permiten ni comas ni decimales.

Se permiten las siguientes representaciones de tipos de números:

  • Binario 1010b, b’1010’
  • Octal 1234q, q’1234’
  • Decimal 1234, -1, d’1234’
  • Hexadecimal 0FFFFh, 0xFFFF, h’FFFF’
         
Constantes de caracteres ASCII
           

Las constantes ASCII pueden consistir en cero o más caracteres enmarcados por comillas simples o dobles. Sólo los caracteres imprimibles y el espacio pueden usarse en las cadenas ASCII. Si se desea incluir el carácter comilla, deben utilizarse dos comillas de forma consecutiva.

        
            Formato                                           Valor
      
  • ’ABCD’                                           ABCD (4 caracteres)
  • "ABCD"                                           ABCD’\0’ (5 caracteres, el último ASCII nulo)
  • ’A’’B’                                              A’B
  • ’A’’’                                                 A’
  • ’’’’                                                    ’
  • ’’                                                      Cadena vacía (ningún valor)
  • ""                                                      Cadena vacía (un caracter ASCII nulo)
  • \’                                                       ’
  • \\                                                       \
                        
                                         

B_1.gif (1135 bytes)

B_3.gif (1151 bytes)

B_2.gif (1184 bytes)