SlideShare una empresa de Scribd logo
1 de 15
Sistemas Basados en
    Microprocesadores

Programación en Ensamblador
Lenguaje ensamblador
 Laprogramación en ensamblador es el modo de
 programación de más bajo nivel.
    Las instrucciones se traducen literalmente a código
     máquina sin un compilado previo.
    Es especifico de cada plataforma.
 Características:
    Más difícil de aprender que los lenguajes de alto nivel
    Dificulta el mantenimiento y recude la productividad del
     programador.
    Mayor velocidad y eficiencia de ejecución



 http://paginaspersonales.deusto.es/jonathan.garibay/
Ensamblador (assembler)
 Es un programa que genera código máquina
 (llamado también código objeto) traduciendo
 instrucciones de un programa fuente escrito en
 ensamblador a códigos ejecutables.
    Interpreta los nombres simbólicos para direcciones de
     memoria y otras elementos.




 http://paginaspersonales.deusto.es/jonathan.garibay/
Estructura de programa
                          list      p=18f4520
 Fichero de               include   "p18f4520.inc“
                                                                     Directivas
  etiquetas
                          config WDT=OFF, OSC=XT, PBADEN=OFF
 Palabra de
                                                                    Dirección de
configuración    temp     equ       0x005                           la memoria
                                                                      de datos
Etiqueta de               org       0x0000       ;Vector de reset
   datos                  bra       inicio
                                                                    Dirección de
                                                                     la memoria
                          org       0x0020                          de programa
Etiqueta de      inicio   clrf      TRISB        ;PuertaB salida
 dirección                setf      TRISC        ;PuertaC entrada
                 bucle    movf      PORTC,W
                                                                     Operando
                          movwf     temp
Instrucciones                                                        Parámetro
                          movf      temp,W
                          movwf     LATB
                          bra       bucle                           Comentario
    Fin del
  programaº
                          end                    ;Fin de programa

http://paginaspersonales.deusto.es/jonathan.garibay/
Elementos básicos
 Etiquetas:  es una palabra utilizada para designa
 alguna línea o sección del programa, se pueden
 utilizar para saltar de una parte hacia esa etiqueta.
    Las etiquetas deben empezar con una letra o con un
     guión bajo “_”.
 Instrucciones:  son las operaciones que realiza el
  microcontrolador, de forma que ya están definidas
  para cada familia de PIC.
 Operandos: son los elementos que emplea la
  instrucción que se está ejecutando. Normalmente,
  son registros o constantes.
    Algunos operandos configuran algunos detalles de las
     instrucciones.

 http://paginaspersonales.deusto.es/jonathan.garibay/
Elementos básicos (continuación…)
 Directivas: son similares a las instrucciones, pero a
 diferencia de estas son propias del lenguaje
 ensamblador e independientes del microcontrolador
 que se utilice.
    Se utilizan para especificar al la configuración del
     procesador utilizado o para asignar localizaciones de
     memoria, entre otras cosas.
 Comentarios:  son las palabras y frases que se
 escriben en el código para hacer el programa más
 legible.
    Los comentarios se pueden escribir en cualquier parte del
     código pero siempre deben empezar con punto y
     coma ”;”.

 http://paginaspersonales.deusto.es/jonathan.garibay/
Elementos básicos (continuación…)
 Directivas
    ”list“ sirve para especificar el PIC seleccionado, en este
     caso un PIC 18F4520.
    “include” se utiliza para incluir un archivo externo en el
     programa.
    “config” establece la configuración del PIC: el tipo de
     reloj, la configuración del watchdog, el reset interno…
    ”org“ define la dirección de memoria a partir de la cual el
     programa se guarda.
    ”end“ es la directiva que marca el final del programa.




 http://paginaspersonales.deusto.es/jonathan.garibay/
Juego de Instrucciones
 Operandos       típicos
    Registro “f”  indica el registro que será utilizado por la
     instrucción.
    El destino del resultado “d”  es un bit que indica donde
     se almacena el resultado de una operación:
      Si es “0” o “w”, el resultado se guardará en el registro de
       trabajo.
      Si es “1” o “f”, el resultado se guardará en el mismo registro.

    El parámetro “a”  es también un bit que indica el tipo de
     acceso a memoria de datos:
      Si es “0” o se omite, se utilizará el banco de acceso.
      Si es “1”, la instrucción utilizará direccionamiento directo.



 http://paginaspersonales.deusto.es/jonathan.garibay/
Juego de Instrucciones (continuación…)
 Operadores       típicos (continuación…)
    Literal “k”  una constante que será utilizada por la
     instrucción.
    Dirección de programa “n”  utilizada en las operaciones
     de control, indica una dirección para un salto condicional
     o incondicional.
 Ejemplos:
    addfw      0x34, 0, 0        
    movlw      0x19              
    goto       0x0456            



 http://paginaspersonales.deusto.es/jonathan.garibay/
Programación estructurada
 Esuna forma de escribir programas de forma clara
 haciendo uso de únicamente 3 estructuras:
    Secuencia: se ejecuta una instrucción tras otra de forma
     secuencial.
    Selección: permite la realización de una instrucción u otra
     según un criterio (solo una de estas instrucciones se
     ejecutara).
        if, then, else
    Iteración: se repiten un conjunto de instrucciones
     mientras se cumpla una condición (el número de
     iteraciones no tiene porque estar determinado).
        while, do…while, for


 http://paginaspersonales.deusto.es/jonathan.garibay/
Programación estructurada (continuación…)
 Anidamiento       de estructuras
    El cuerpo de cualquier estructura puede ser una
     instrucción simple u otra estructura, que a su vez puede
     anidar a otra.
 Funciones                  ¿Paso de parámetros?

    Es un conjunto de líneas de código que realizan una
     tarea específica y puede retornar un valor.




 http://paginaspersonales.deusto.es/jonathan.garibay/
Diagramas de flujo
 Tambiénconocidos como organigramas, son una
 representación gráfica de un algoritmo.
    Utilizan símbolos que representan los pasos del
     algoritmo, y representan el flujo de ejecución mediante
     flechas que conectan los puntos de inicio y de fin.
 Simbología      básica
    Círculo: inicio y término del diagrama.
    Rectángulo: representa la ejecución de una o más
     actividades o procedimientos.
    Rombo: formula una pregunta o cuestión, y ejecuta una
     salida u otra.


 http://paginaspersonales.deusto.es/jonathan.garibay/
Diagramas de flujo (continuación…)




 http://paginaspersonales.deusto.es/jonathan.garibay/
Estrategia de diseño Top-Down
 En el modelo Top-Down se crea un resumen del
 sistema, sin especificar detalles. Cada parte del
 sistema se refina con mayor detalle y se realizan
 tantas iteraciones como sean necesarias.
    El enfoque Top-Down enfatiza la planificación y
     conocimiento completo del sistema.
        La codificación no puede comenzar hasta que no se haya
         alcanzado un nivel de detalle suficiente
 Enel diseño Bottom-Up se diseñan en detalle las
 partes individuales y después se enlazan para
 formar componentes más grandes.


 http://paginaspersonales.deusto.es/jonathan.garibay/
Estrategia de diseño Top-Down (continuación…)

                                     Se define la estructura de la función
                                     main y de las rutinas de interrupción

                                         Se estudian todas aquellas
                                         funciones de alto nivel que
                                         surgen del paso anterior

                                      Se repite el proceso anterior hasta
                                      definir el funcionamiento de todas
                                      las funciones

                                       Se complementan las funciones
                                       con detalles relevantes para la
                                       programación final




 http://paginaspersonales.deusto.es/jonathan.garibay/

Más contenido relacionado

La actualidad más candente

Manual de fallas y soluciones de un equipo de cómputo
Manual de fallas y soluciones de un equipo de cómputoManual de fallas y soluciones de un equipo de cómputo
Manual de fallas y soluciones de un equipo de cómputoblacktroll
 
Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2perlallamas
 
Reporte de formateo a equipo e computo
Reporte de formateo a equipo e computoReporte de formateo a equipo e computo
Reporte de formateo a equipo e computomanuelluna12569284583
 
Tema 4 Sistemas Basados En Reglas Difusas
Tema 4 Sistemas Basados En Reglas DifusasTema 4 Sistemas Basados En Reglas Difusas
Tema 4 Sistemas Basados En Reglas DifusasESCOM
 
Cronología de la evolución de los procesadores con tecnología de multiprogram...
Cronología de la evolución de los procesadores con tecnología de multiprogram...Cronología de la evolución de los procesadores con tecnología de multiprogram...
Cronología de la evolución de los procesadores con tecnología de multiprogram...Yolanda Mora
 
Arquitectura harvard 2010 1
Arquitectura harvard 2010 1Arquitectura harvard 2010 1
Arquitectura harvard 2010 1jesus199025
 
IMPORTANCIA DE LOS DISTINTOS PUERTOS DE COMUNICACIÓN
IMPORTANCIA DE LOS DISTINTOS PUERTOS DE COMUNICACIÓNIMPORTANCIA DE LOS DISTINTOS PUERTOS DE COMUNICACIÓN
IMPORTANCIA DE LOS DISTINTOS PUERTOS DE COMUNICACIÓNluchoatencia
 
Arquitectura de hardware y software
Arquitectura de hardware y softwareArquitectura de hardware y software
Arquitectura de hardware y softwareYesid Albarracin
 
Generacion de Sistemas Operativos
Generacion de Sistemas OperativosGeneracion de Sistemas Operativos
Generacion de Sistemas OperativosFreddy Sinchi
 
Memorias en circuitos digitales
Memorias en circuitos digitalesMemorias en circuitos digitales
Memorias en circuitos digitalesFernanda Silva
 
Interfaces De Entrada Y Salida
Interfaces De Entrada Y SalidaInterfaces De Entrada Y Salida
Interfaces De Entrada Y SalidaBigbossH
 
Arquitectura del cpu
Arquitectura del cpuArquitectura del cpu
Arquitectura del cpuMedardoPerez
 
Familia De Los Microcontroladores
Familia De Los MicrocontroladoresFamilia De Los Microcontroladores
Familia De Los Microcontroladoresceiv
 
REGISTRO DE BANDERAS
REGISTRO DE BANDERASREGISTRO DE BANDERAS
REGISTRO DE BANDERASFabian Rojas
 
Unidad 2 ensamblador
Unidad 2   ensambladorUnidad 2   ensamblador
Unidad 2 ensambladoreveTalavera
 

La actualidad más candente (20)

Manual de fallas y soluciones de un equipo de cómputo
Manual de fallas y soluciones de un equipo de cómputoManual de fallas y soluciones de un equipo de cómputo
Manual de fallas y soluciones de un equipo de cómputo
 
Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2
 
Reporte de formateo a equipo e computo
Reporte de formateo a equipo e computoReporte de formateo a equipo e computo
Reporte de formateo a equipo e computo
 
Error del Post
Error del Post Error del Post
Error del Post
 
Tema 4 Sistemas Basados En Reglas Difusas
Tema 4 Sistemas Basados En Reglas DifusasTema 4 Sistemas Basados En Reglas Difusas
Tema 4 Sistemas Basados En Reglas Difusas
 
Cronología de la evolución de los procesadores con tecnología de multiprogram...
Cronología de la evolución de los procesadores con tecnología de multiprogram...Cronología de la evolución de los procesadores con tecnología de multiprogram...
Cronología de la evolución de los procesadores con tecnología de multiprogram...
 
Arquitectura harvard 2010 1
Arquitectura harvard 2010 1Arquitectura harvard 2010 1
Arquitectura harvard 2010 1
 
Tutorial de CodeBlocks
Tutorial de CodeBlocksTutorial de CodeBlocks
Tutorial de CodeBlocks
 
IMPORTANCIA DE LOS DISTINTOS PUERTOS DE COMUNICACIÓN
IMPORTANCIA DE LOS DISTINTOS PUERTOS DE COMUNICACIÓNIMPORTANCIA DE LOS DISTINTOS PUERTOS DE COMUNICACIÓN
IMPORTANCIA DE LOS DISTINTOS PUERTOS DE COMUNICACIÓN
 
Gestion de Memoria
Gestion de MemoriaGestion de Memoria
Gestion de Memoria
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Arquitectura de hardware y software
Arquitectura de hardware y softwareArquitectura de hardware y software
Arquitectura de hardware y software
 
10 arquitectura intel 8086
10 arquitectura intel 808610 arquitectura intel 8086
10 arquitectura intel 8086
 
Generacion de Sistemas Operativos
Generacion de Sistemas OperativosGeneracion de Sistemas Operativos
Generacion de Sistemas Operativos
 
Memorias en circuitos digitales
Memorias en circuitos digitalesMemorias en circuitos digitales
Memorias en circuitos digitales
 
Interfaces De Entrada Y Salida
Interfaces De Entrada Y SalidaInterfaces De Entrada Y Salida
Interfaces De Entrada Y Salida
 
Arquitectura del cpu
Arquitectura del cpuArquitectura del cpu
Arquitectura del cpu
 
Familia De Los Microcontroladores
Familia De Los MicrocontroladoresFamilia De Los Microcontroladores
Familia De Los Microcontroladores
 
REGISTRO DE BANDERAS
REGISTRO DE BANDERASREGISTRO DE BANDERAS
REGISTRO DE BANDERAS
 
Unidad 2 ensamblador
Unidad 2   ensambladorUnidad 2   ensamblador
Unidad 2 ensamblador
 

Destacado

Uso de las tablas en lenguaje ensamblador
Uso de las tablas en lenguaje ensambladorUso de las tablas en lenguaje ensamblador
Uso de las tablas en lenguaje ensambladorLuis Zurita
 
Arquitectura del procesador
Arquitectura del procesadorArquitectura del procesador
Arquitectura del procesadormao1322
 
Organizacion computacional cel2015
Organizacion computacional cel2015Organizacion computacional cel2015
Organizacion computacional cel2015Maestros Online
 
Lenguaje ensamblador EMU8086
Lenguaje ensamblador EMU8086Lenguaje ensamblador EMU8086
Lenguaje ensamblador EMU8086Santy Bolo
 
Funciones del lenguaje ensamblador
Funciones del lenguaje ensambladorFunciones del lenguaje ensamblador
Funciones del lenguaje ensambladorAna Velazquez
 
Tipos De Ensambladores
Tipos De EnsambladoresTipos De Ensambladores
Tipos De EnsambladoresSpiderHal
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basicoGustavo Davila
 
Programacion Lenguaje Assembler 25 10 07
Programacion Lenguaje Assembler 25 10 07Programacion Lenguaje Assembler 25 10 07
Programacion Lenguaje Assembler 25 10 07Carlos Pastorino
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensambladoriagardea
 
Arquitectura de Computadores (II Bimestre)
Arquitectura de Computadores (II Bimestre)Arquitectura de Computadores (II Bimestre)
Arquitectura de Computadores (II Bimestre)Videoconferencias UTPL
 

Destacado (15)

Uso de las tablas en lenguaje ensamblador
Uso de las tablas en lenguaje ensambladorUso de las tablas en lenguaje ensamblador
Uso de las tablas en lenguaje ensamblador
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Arquitectura del procesador
Arquitectura del procesadorArquitectura del procesador
Arquitectura del procesador
 
Organizacion computacional cel2015
Organizacion computacional cel2015Organizacion computacional cel2015
Organizacion computacional cel2015
 
Lenguaje ensamblador EMU8086
Lenguaje ensamblador EMU8086Lenguaje ensamblador EMU8086
Lenguaje ensamblador EMU8086
 
PRÁCTICA 1 ENSAMBLADOR- JESÚS ASMETH PEREZ CAMACHO
PRÁCTICA 1 ENSAMBLADOR- JESÚS ASMETH PEREZ CAMACHOPRÁCTICA 1 ENSAMBLADOR- JESÚS ASMETH PEREZ CAMACHO
PRÁCTICA 1 ENSAMBLADOR- JESÚS ASMETH PEREZ CAMACHO
 
Computadores RISC
Computadores RISCComputadores RISC
Computadores RISC
 
Ensamblador
EnsambladorEnsamblador
Ensamblador
 
Funciones del lenguaje ensamblador
Funciones del lenguaje ensambladorFunciones del lenguaje ensamblador
Funciones del lenguaje ensamblador
 
Tipos De Ensambladores
Tipos De EnsambladoresTipos De Ensambladores
Tipos De Ensambladores
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basico
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
Programacion Lenguaje Assembler 25 10 07
Programacion Lenguaje Assembler 25 10 07Programacion Lenguaje Assembler 25 10 07
Programacion Lenguaje Assembler 25 10 07
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
Arquitectura de Computadores (II Bimestre)
Arquitectura de Computadores (II Bimestre)Arquitectura de Computadores (II Bimestre)
Arquitectura de Computadores (II Bimestre)
 

Similar a 03.Programación en ensamblador

Exposición ted
Exposición tedExposición ted
Exposición tedCOVAEV
 
Practica 09 programacion web intoduccion mari
Practica 09 programacion web intoduccion mariPractica 09 programacion web intoduccion mari
Practica 09 programacion web intoduccion mariMaribelPechaLamprea
 
Practica 09 programacion web intoduccion mari
Practica 09 programacion web intoduccion mariPractica 09 programacion web intoduccion mari
Practica 09 programacion web intoduccion mariMaribelPechaLamprea
 
Capacidad de la unidad de procesamiento (grecia gonzález 30203532)
Capacidad de la unidad  de procesamiento (grecia gonzález   30203532)Capacidad de la unidad  de procesamiento (grecia gonzález   30203532)
Capacidad de la unidad de procesamiento (grecia gonzález 30203532)GreciaGonzlez9
 
Unidad central de procesamiento
Unidad central de procesamientoUnidad central de procesamiento
Unidad central de procesamientoAlejandro Molina
 
Lenguaje C para Administradores de Red / Script III - Memoria
Lenguaje C para Administradores de Red / Script III - MemoriaLenguaje C para Administradores de Red / Script III - Memoria
Lenguaje C para Administradores de Red / Script III - Memoriasirfids
 
Capacidad de la unidad de procesamiento por andres maica
Capacidad de la unidad de procesamiento por andres maicaCapacidad de la unidad de procesamiento por andres maica
Capacidad de la unidad de procesamiento por andres maicaAndresMaica28
 
Capacidad de la unidad de procesamiento
Capacidad de la unidad de procesamientoCapacidad de la unidad de procesamiento
Capacidad de la unidad de procesamientoLucianoCabrera7
 
ESTRUCTURA BASICA PARA C++
ESTRUCTURA BASICA PARA C++ESTRUCTURA BASICA PARA C++
ESTRUCTURA BASICA PARA C++JazminIbarra1106
 
1. tipos de datos abstractos
1. tipos de datos abstractos1. tipos de datos abstractos
1. tipos de datos abstractosFernando Solis
 
Introducción a los sistemas informáticos
Introducción a los sistemas informáticosIntroducción a los sistemas informáticos
Introducción a los sistemas informáticosECCI
 

Similar a 03.Programación en ensamblador (20)

Exposición ted
Exposición tedExposición ted
Exposición ted
 
Practica 09 programacion web intoduccion mari
Practica 09 programacion web intoduccion mariPractica 09 programacion web intoduccion mari
Practica 09 programacion web intoduccion mari
 
Practica 09 programacion web intoduccion mari
Practica 09 programacion web intoduccion mariPractica 09 programacion web intoduccion mari
Practica 09 programacion web intoduccion mari
 
Yeimir rincon 20%
Yeimir rincon 20%Yeimir rincon 20%
Yeimir rincon 20%
 
Capacidad de la unidad de procesamiento (grecia gonzález 30203532)
Capacidad de la unidad  de procesamiento (grecia gonzález   30203532)Capacidad de la unidad  de procesamiento (grecia gonzález   30203532)
Capacidad de la unidad de procesamiento (grecia gonzález 30203532)
 
Unidad central de procesamiento
Unidad central de procesamientoUnidad central de procesamiento
Unidad central de procesamiento
 
Modos de direccionamiento.pdf
Modos de direccionamiento.pdfModos de direccionamiento.pdf
Modos de direccionamiento.pdf
 
Emsamblador
EmsambladorEmsamblador
Emsamblador
 
Estructura basica para c++
Estructura basica para c++Estructura basica para c++
Estructura basica para c++
 
Parte i curso c
Parte i curso cParte i curso c
Parte i curso c
 
Unidad 2 curso c
Unidad 2 curso cUnidad 2 curso c
Unidad 2 curso c
 
Lenguaje C para Administradores de Red / Script III - Memoria
Lenguaje C para Administradores de Red / Script III - MemoriaLenguaje C para Administradores de Red / Script III - Memoria
Lenguaje C para Administradores de Red / Script III - Memoria
 
Presentación1.pptx
Presentación1.pptxPresentación1.pptx
Presentación1.pptx
 
Introduccion al assembler
Introduccion al assemblerIntroduccion al assembler
Introduccion al assembler
 
Introduccion al assembler[1]
Introduccion al assembler[1]Introduccion al assembler[1]
Introduccion al assembler[1]
 
Capacidad de la unidad de procesamiento por andres maica
Capacidad de la unidad de procesamiento por andres maicaCapacidad de la unidad de procesamiento por andres maica
Capacidad de la unidad de procesamiento por andres maica
 
Capacidad de la unidad de procesamiento
Capacidad de la unidad de procesamientoCapacidad de la unidad de procesamiento
Capacidad de la unidad de procesamiento
 
ESTRUCTURA BASICA PARA C++
ESTRUCTURA BASICA PARA C++ESTRUCTURA BASICA PARA C++
ESTRUCTURA BASICA PARA C++
 
1. tipos de datos abstractos
1. tipos de datos abstractos1. tipos de datos abstractos
1. tipos de datos abstractos
 
Introducción a los sistemas informáticos
Introducción a los sistemas informáticosIntroducción a los sistemas informáticos
Introducción a los sistemas informáticos
 

Más de Jonathan Ruiz de Garibay

Codesign-Oriented Platform for Agile Internet of Things Prototype Development
Codesign-Oriented Platform for Agile Internet of Things Prototype DevelopmentCodesign-Oriented Platform for Agile Internet of Things Prototype Development
Codesign-Oriented Platform for Agile Internet of Things Prototype DevelopmentJonathan Ruiz de Garibay
 
Introducción a la planificación de proyectos
Introducción a la planificación de proyectosIntroducción a la planificación de proyectos
Introducción a la planificación de proyectosJonathan Ruiz de Garibay
 

Más de Jonathan Ruiz de Garibay (20)

Vocaciones STEM
Vocaciones STEMVocaciones STEM
Vocaciones STEM
 
Configuraciones con transistores BJT
Configuraciones con transistores BJTConfiguraciones con transistores BJT
Configuraciones con transistores BJT
 
Amplificadores Multietapa
Amplificadores MultietapaAmplificadores Multietapa
Amplificadores Multietapa
 
Amplificación de señal con BJT
Amplificación de señal con BJTAmplificación de señal con BJT
Amplificación de señal con BJT
 
Recta de carga para señal
Recta de carga para señalRecta de carga para señal
Recta de carga para señal
 
Práctica09.Librerías
Práctica09.LibreríasPráctica09.Librerías
Práctica09.Librerías
 
Práctica08.Comunicaciones
Práctica08.ComunicacionesPráctica08.Comunicaciones
Práctica08.Comunicaciones
 
Práctica06.Controlando Motores
Práctica06.Controlando MotoresPráctica06.Controlando Motores
Práctica06.Controlando Motores
 
Práctica05.Interrupciones en Arduino
Práctica05.Interrupciones en ArduinoPráctica05.Interrupciones en Arduino
Práctica05.Interrupciones en Arduino
 
Práctica04.Programando Arduino
Práctica04.Programando ArduinoPráctica04.Programando Arduino
Práctica04.Programando Arduino
 
Práctica01.Sistemas de Entrada Salida
Práctica01.Sistemas de Entrada SalidaPráctica01.Sistemas de Entrada Salida
Práctica01.Sistemas de Entrada Salida
 
Programación Basada en Autómatas
Programación Basada en AutómatasProgramación Basada en Autómatas
Programación Basada en Autómatas
 
Introduccion a la Programación
Introduccion a la ProgramaciónIntroduccion a la Programación
Introduccion a la Programación
 
Fundamentos de los Microcontroladores
Fundamentos de los MicrocontroladoresFundamentos de los Microcontroladores
Fundamentos de los Microcontroladores
 
Polarización de los Transistores
Polarización de los TransistoresPolarización de los Transistores
Polarización de los Transistores
 
Programación en Arduino
Programación en ArduinoProgramación en Arduino
Programación en Arduino
 
Codesign-Oriented Platform for Agile Internet of Things Prototype Development
Codesign-Oriented Platform for Agile Internet of Things Prototype DevelopmentCodesign-Oriented Platform for Agile Internet of Things Prototype Development
Codesign-Oriented Platform for Agile Internet of Things Prototype Development
 
Introducción a la planificación de proyectos
Introducción a la planificación de proyectosIntroducción a la planificación de proyectos
Introducción a la planificación de proyectos
 
01.Puntos Clave de una Presentación Oral
01.Puntos Clave de una Presentación Oral01.Puntos Clave de una Presentación Oral
01.Puntos Clave de una Presentación Oral
 
02.El Soporte Visual
02.El Soporte Visual02.El Soporte Visual
02.El Soporte Visual
 

03.Programación en ensamblador

  • 1. Sistemas Basados en Microprocesadores Programación en Ensamblador
  • 2. Lenguaje ensamblador  Laprogramación en ensamblador es el modo de programación de más bajo nivel.  Las instrucciones se traducen literalmente a código máquina sin un compilado previo.  Es especifico de cada plataforma.  Características:  Más difícil de aprender que los lenguajes de alto nivel  Dificulta el mantenimiento y recude la productividad del programador.  Mayor velocidad y eficiencia de ejecución http://paginaspersonales.deusto.es/jonathan.garibay/
  • 3. Ensamblador (assembler)  Es un programa que genera código máquina (llamado también código objeto) traduciendo instrucciones de un programa fuente escrito en ensamblador a códigos ejecutables.  Interpreta los nombres simbólicos para direcciones de memoria y otras elementos. http://paginaspersonales.deusto.es/jonathan.garibay/
  • 4. Estructura de programa list p=18f4520 Fichero de include "p18f4520.inc“ Directivas etiquetas config WDT=OFF, OSC=XT, PBADEN=OFF Palabra de Dirección de configuración temp equ 0x005 la memoria de datos Etiqueta de org 0x0000 ;Vector de reset datos bra inicio Dirección de la memoria org 0x0020 de programa Etiqueta de inicio clrf TRISB ;PuertaB salida dirección setf TRISC ;PuertaC entrada bucle movf PORTC,W Operando movwf temp Instrucciones Parámetro movf temp,W movwf LATB bra bucle Comentario Fin del programaº end ;Fin de programa http://paginaspersonales.deusto.es/jonathan.garibay/
  • 5. Elementos básicos  Etiquetas: es una palabra utilizada para designa alguna línea o sección del programa, se pueden utilizar para saltar de una parte hacia esa etiqueta.  Las etiquetas deben empezar con una letra o con un guión bajo “_”.  Instrucciones: son las operaciones que realiza el microcontrolador, de forma que ya están definidas para cada familia de PIC.  Operandos: son los elementos que emplea la instrucción que se está ejecutando. Normalmente, son registros o constantes.  Algunos operandos configuran algunos detalles de las instrucciones. http://paginaspersonales.deusto.es/jonathan.garibay/
  • 6. Elementos básicos (continuación…)  Directivas: son similares a las instrucciones, pero a diferencia de estas son propias del lenguaje ensamblador e independientes del microcontrolador que se utilice.  Se utilizan para especificar al la configuración del procesador utilizado o para asignar localizaciones de memoria, entre otras cosas.  Comentarios: son las palabras y frases que se escriben en el código para hacer el programa más legible.  Los comentarios se pueden escribir en cualquier parte del código pero siempre deben empezar con punto y coma ”;”. http://paginaspersonales.deusto.es/jonathan.garibay/
  • 7. Elementos básicos (continuación…)  Directivas  ”list“ sirve para especificar el PIC seleccionado, en este caso un PIC 18F4520.  “include” se utiliza para incluir un archivo externo en el programa.  “config” establece la configuración del PIC: el tipo de reloj, la configuración del watchdog, el reset interno…  ”org“ define la dirección de memoria a partir de la cual el programa se guarda.  ”end“ es la directiva que marca el final del programa. http://paginaspersonales.deusto.es/jonathan.garibay/
  • 8. Juego de Instrucciones  Operandos típicos  Registro “f”  indica el registro que será utilizado por la instrucción.  El destino del resultado “d”  es un bit que indica donde se almacena el resultado de una operación:  Si es “0” o “w”, el resultado se guardará en el registro de trabajo.  Si es “1” o “f”, el resultado se guardará en el mismo registro.  El parámetro “a”  es también un bit que indica el tipo de acceso a memoria de datos:  Si es “0” o se omite, se utilizará el banco de acceso.  Si es “1”, la instrucción utilizará direccionamiento directo. http://paginaspersonales.deusto.es/jonathan.garibay/
  • 9. Juego de Instrucciones (continuación…)  Operadores típicos (continuación…)  Literal “k”  una constante que será utilizada por la instrucción.  Dirección de programa “n”  utilizada en las operaciones de control, indica una dirección para un salto condicional o incondicional.  Ejemplos:  addfw 0x34, 0, 0   movlw 0x19   goto 0x0456  http://paginaspersonales.deusto.es/jonathan.garibay/
  • 10. Programación estructurada  Esuna forma de escribir programas de forma clara haciendo uso de únicamente 3 estructuras:  Secuencia: se ejecuta una instrucción tras otra de forma secuencial.  Selección: permite la realización de una instrucción u otra según un criterio (solo una de estas instrucciones se ejecutara).  if, then, else  Iteración: se repiten un conjunto de instrucciones mientras se cumpla una condición (el número de iteraciones no tiene porque estar determinado).  while, do…while, for http://paginaspersonales.deusto.es/jonathan.garibay/
  • 11. Programación estructurada (continuación…)  Anidamiento de estructuras  El cuerpo de cualquier estructura puede ser una instrucción simple u otra estructura, que a su vez puede anidar a otra.  Funciones ¿Paso de parámetros?  Es un conjunto de líneas de código que realizan una tarea específica y puede retornar un valor. http://paginaspersonales.deusto.es/jonathan.garibay/
  • 12. Diagramas de flujo  Tambiénconocidos como organigramas, son una representación gráfica de un algoritmo.  Utilizan símbolos que representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y de fin.  Simbología básica  Círculo: inicio y término del diagrama.  Rectángulo: representa la ejecución de una o más actividades o procedimientos.  Rombo: formula una pregunta o cuestión, y ejecuta una salida u otra. http://paginaspersonales.deusto.es/jonathan.garibay/
  • 13. Diagramas de flujo (continuación…) http://paginaspersonales.deusto.es/jonathan.garibay/
  • 14. Estrategia de diseño Top-Down  En el modelo Top-Down se crea un resumen del sistema, sin especificar detalles. Cada parte del sistema se refina con mayor detalle y se realizan tantas iteraciones como sean necesarias.  El enfoque Top-Down enfatiza la planificación y conocimiento completo del sistema.  La codificación no puede comenzar hasta que no se haya alcanzado un nivel de detalle suficiente  Enel diseño Bottom-Up se diseñan en detalle las partes individuales y después se enlazan para formar componentes más grandes. http://paginaspersonales.deusto.es/jonathan.garibay/
  • 15. Estrategia de diseño Top-Down (continuación…) Se define la estructura de la función main y de las rutinas de interrupción Se estudian todas aquellas funciones de alto nivel que surgen del paso anterior Se repite el proceso anterior hasta definir el funcionamiento de todas las funciones Se complementan las funciones con detalles relevantes para la programación final http://paginaspersonales.deusto.es/jonathan.garibay/