HERRAMIENTA ATMEL
STUDIO PARA DISEAR
PROGRAMAS EN
ENSAMBLADOR,
ESQUEMA BASICO DE UN
PROGRAMA, INCLUDE,
DEF Y DEFINICIONES DE
ORGANIZACIN BASICA
ATMEL STUDIO
Atmel es una compaa de
semiconductores, fundada en 1984. Su
lnea de productos incluye
microcontroladores (incluyendo derivados
del 8051, el AT91SAM basados en ARM, y
sus arquitecturas propias AVR y AVR32),
dispositivos de radiofrecuencia, memorias
EEPROM y Flash, ASICs, WiMAX, y muchas
otras. Tambin tiene capacidad de ofrecer
soluciones del tipo system on chip (SoC).
AVR
Los AVR son una familia de
microcontroladores RISC del fabricante
estadounidense Atmel. La arquitectura de los
AVR fue concebida por dos estudiantes en el
Norwegian Institute of Technology, y
posteriormente refinada y desarrollada en
Atmel Norway, la empresa subsidiaria de
Atmel, fundada por los dos arquitectos del
chip. Cuenta con bastantes aficionados
debido a su diseo simple y la facilidad de
programacin.
ESQUEMA BASICO DE UN
PROGRAMA
El lenguaje ensamblador (o lenguaje de
ensamble, assembly language) es la
representacin simblica de la
codificacin binaria de un computador.
Cdigos de operacin representados
mediante cdigos nemotcnicos.
Datos y referencias codificadas
mediante nombres simblicos (smbolos o
etiquetas).
Macroensambladores: permiten al
programador definir secuencias de
instrucciones con nombre.
El lenguaje ensamblador debe ser
traducido a lenguaje maquina para
poder ser interpretado y ejecutado
directamente por el computador.
Fases
1. Especificacindelproblema.
2. Elaboracindelalgoritmodelasolucin.
3. Diseodeldiagramadeflujo.
4. Codificacinenensamblador.
5. Edicindelprogramafuente.
6. Traduccin del programa fuente a cdigo
maquina.
7. Montajedelprogramaejecutable.
8. Cargayejecucindelprograma.
9.
Verificacindelfuncionamientodelprograma.
Codificacin en ensamblador.
El programa fuente se escribe en
papel..
Si el diagrama de flujo es
suficientemente detallado, esta fase
es inmediata.
Si hay varios mdulos, se codifica
cada uno de ellos por separado.
Compilador
Traductor de lenguaje de alto nivel a
ensamblador.
Hoy todos los compiladores traducen
directamente a lenguaje maquina.
En tal caso generan un fichero con el
cdigo objeto equivalente al cdigo
fuente completo, junto con informacin
necesaria para el montaje.
Sintaxis de un lenguaje
ensamblador
Tipos de lneas en un programa en
ensamblador:
Instrucciones: ejecutables por el computador.
Pseudoinstrucciones: secuencias de
instrucciones con nombre predefinido.
Directivas: indicaciones para el traductor.
Lneas de comentario: suelen comenzar por
un caracter especial, y son ignoradas por el
traductor en cuanto a la generacin de
cdigo objeto.
Etiquetas
La etiqueta identifica la lnea que encabeza.
Recomendaciones:
Utilizar slo letras o numeros (comenzar por una
letra).
Colocar la primera letra de la etiqueta en el
primer caracter de la lnea.
Nemotcnico
Identifica:
Un cdigo de operacin de una
instruccin del lenguaje.
Una pseudoinstruccin.
Una directiva.
El nemotcnico nunca comienza en el
primer caracter de la lnea.
Campos de operandos
Identifican los operandos que
intervienen en la instruccin o
directiva.
Tipos de operandos: Constantes
Numricas: suelen llevar un prefijo o un
sufijo que identifica la base en que
estan expresadas: decimal (D), binaria
(%,B), octal (O,@,Q,C) o hexadecimal (H,
$, 0x).
Alfabticas: entre comillas.
Smbolos
Predefinidos: registros, contador de
direccin de ensamblaje, etc. Implcitos.
Explcitos.
Expresiones
Pueden incluir constantes, smbolos
implcitos o explcitos, el smbolo del
contador de direccin de ensamblaje,
parntesis u operadores sencillos
(+,-,*,/,%,&,|,^,<<, etc).
Comentarios
Son indicaciones para una mejor
comprensin del programa
ensamblador.
Pueden situarse a continuacin de
los operandos, con al menos un
espacio en blanco entre medias.
En ocasiones puede exigirse incluir
ademas algun otro caracter delimitador
(*, ;, #).
Pseudoinstrucciones en
ensamblador
Una pseudoinstruccin es una
instruccin ofrecida por el
ensamblador, pero no realizada por
la circuitera.
A una pseudoinstruccin le
corresponde una secuencia definida
de instrucciones realizadas por la
circuitera.
Directivas en ensamblador
Informan al traductor acerca de
cmo debe traducir el cdigo fuente
a cdigo maquina, pero no producen
instrucciones en lenguaje maquina.
PALABRAS RESERVADAS
Ciertas palabras en lenguaje ensamblador estan reservadas para sus propsitos propios, y
son usadas solo bajo condiciones especiales. Por categoras, las palabras reservadas
incluyen:
* Instrucciones, como MOV y ADD, que son operaciones que la computadora puede
ejecutar.
* Directivas como END o SEGMENT, que se emplean para proporcionar comandos al
ensamblador.
* Operadores, como FAR y SIZE, que se utilizan en expresiones.
* Smbolos predefinidos, como @Data y @Model, que regresan informacin a su programa.
El uso de una palabra reservada para un propsito equivocado provoca que el ensamblador
genere un mensaje de error.
Ver palabras reservadas.
IDENTIFICADORES
Un identificador es un nombre que se
aplica a elementos en el programa.
Los dos tipos de identificadores son:
nombre, que se refiere a la direccin
de un elemento de dato. y etiqueta,
que se refiere a la direccin de una
instruccin. Las mismas reglas se
aplican tanto para los nombres como
para las etiquetas. Un identificador
puede usar los siguientes caracteres:
ADD AX, BX
El ensamblador sabe de forma automatica
que AX y BX se refieren a los registros. Sin
embargo, en una instruccin como:
MOV REGSAVE, AX
El ensamblador puede reconocer el
nombre REGSAVE solo si se define en
algun lugar del programa.
INSTRUCCIONES
Un programa en lenguaje ensamblador consiste en un
conjunto de enunciados. Los dos tipos de enunciados son:
1. Instrucciones, tal como MOV y ADD, que el ensamblador
traduce a cdigo objeto.
2. Directivas, que indican al ensamblador que realiza una
accin especifica, como definir un elemento de dato.
A continuacin esta el formato general de un enunciado, en
donde los corchetes indican una entrada opcional:
[identificador] operacin [operando(s)] [;comentarios]
Directiva #INCLUDE
Esta directiva indica que archivos deberan tomarse
en cuenta a la hora de compilar el cdigo.
Normalmente se usa para incluir el archivo de PIC
que el ensamblador tiene entre sus archivos, con el
cual el compilador sera capaz de reconocer todos los
registros especiales y sus bits. Su uso nos recordara
al #include del lenguaje C. Esta lnea debe colocarse
al principio, y tiene la siguiente sintaxis:
#INCLUDE ; Lista de etiquetas de microchip
Tambin permite incluir otros programas. Por
ejemplo:
#INCLUDE "DISPLAY.ASM"
Directiva #DEFINE
#DEFINE es una directiva muy util. Define se usa para
crear pequeas macros. Con estas macros podremos
poner nombres a pequeos fragmentos de cdigo que nos
facilitaran la realizacin y comprensin del algoritmo.
Por ejemplo, podremos poner nombres a bits.
#define CERO STATUS,2
As, en vez de tener que llamar al bit por un numero y
un registro, podremos usar directamente la palabra CERO.
#define CINCO 5
Cada vez que se utilice la palabra CINCO sera
reemplazada en el momento de la compilacin por el
numero 5.
Directiva MACRO
Esta directiva resulta muy potente y a diferencia de
la directiva #define se pueden crear macros mas
extensas, lo que nos evitara tener que ejecutar
reiteradamente fragmentos de cdigo idnticos.
Cuando una macro es invocada, esta es copiada por
el ensamblador en el lugar de la invocacin dentro
del cdigo fuente. La macro se declara con la
directiva MACRO, y termina con la directiva ENDM.
Creacin de una macro denominada activar:
activar macro
CLRF PORTA
BSF PORTB,2
endm
Referencias
http://es.wikipedia.org/wiki/Atmel
http://www.slideshare.net/alepusto/manual-atmel-flip
http://www.atmel.com/webdoc/atmelstudio/atmelstudio.chapter.kgw_exp_kc.ht
ml
http://www.atmel.com/Images/Atmel-8431-8-and32-bit-Microcontrollers-AVR402
9-Atmel-Software-Framework-User-Guide_Application-Note.pdf
http://es.wikipedia.org/wiki/ AVR
http://www.uclm.es/profesorado/licesio/docencia/etc/17_cbasprogensamblador_itis.pdf
http://www.portalhacker.net/b120/tutorial-completo-lenguaje-ensamblador/7
3143/msg344636#
msg344636
http://miensamblador.blogspot.mx/2013/07/numero-perfecto-utilizandomacros.html
http://www.slideshare.net/alepusto/manual-atmel- flip
http://www.atmel.com/webdoc/atmelstudio/ index.html
http
://www.atmel.com/Images/Atmel-8431-8-and32-bit-Microcontrollers-AVR4029-At
mel-Software-Framework-User-Guide_ApplicationNote.pdf
http://perso.wanadoo.es/pictob/ ensamblador.htm