Computing">
Nothing Special   »   [go: up one dir, main page]

Investigacion 4.3 4.4 4.5

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 13

Tecnológico Nacional de México

Instituto Tecnológico Superior de Tacámbaro

Tema: 4.4 - 4.6 Programación de Microcontroladores.

Profesor: Víctor Neri Bartolo Torres

Alumno: Carlos Uriel Ortiz Cornejo.

Luz Paloma Reyes Saucedo

Aldahir Calderón Cruz

7° Semestre Grupo único.

28 de octubre del 2020


Índice.
Objetivo. .................................................................................................................. 3

Justificación. ............................................................................................................ 3

4.4 Conjunto de instrucciones. ................................................................................ 4

Instrucciones del ensamblador mpasm. .............................................................. 4

Tipos de arquitecturas ......................................................................................... 6

Arquitectura CISC. ........................................................................................... 6

Arquitectura RISC. ........................................................................................... 6

Arquitectura SISC. ........................................................................................... 7

4.5 Lenguajes ensambladores ................................................................................ 7

Características ..................................................................................................... 8

Tipos de lenguajes ensamblador. ........................................................................ 8

Ensambladores Cruzados. ............................................................................... 8

Ensamblador de una fase. ............................................................................... 9

Ensamblador de dos fases. .............................................................................. 9

Ensambladores Residentes. ............................................................................ 9

Macroensambladores. .................................................................................... 10

Microensambladores. ..................................................................................... 10

Ventajas. ............................................................................................................ 10

Desventajas ....................................................................................................... 10

4.6 Codificación. .................................................................................................... 11

Codificación NRZI ................................................................................................. 11

Codificación de Hamming...................................................................................... 11

Conclusión............................................................................................................. 12

Referencias ........................................................................................................... 13
Objetivo.
Tener conocimiento de que es un microcontrolador, su característica en que
lenguajes se utilizaran, como es que se utilizan, las instrucciones que se deben de
hacer, así como sus tipos de arquitecturas con las que cuenta, a pesar del uso de
lenguajes ensamblador, también se tiene que saber los tipos de lenguajes de
ensamblador que se utilizan, como sus ventajas y desventajas.

Justificación.
La investigación da apoyo a la presentación, respecto a obtener la información
necesaria para extraer la información más indispensable, del cual se obtendrá como
concepto, características, aplicaciones y su uso de lenguaje, todo esto es lo que la
investigación aporta al lector y saber de qué se tratará el tema, ya que se deberá
dar una explicación de una manera clara y concisa sin tener que hablar de tanta
información, todo esto para la mayor comprensión del lector.
4.4 Conjunto de instrucciones.
Un conjunto de instrucciones o repertorio de instrucciones, juego de instrucciones o
ISA (del inglés Instruction Set Architecture, Arquitectura del Conjunto de
Instrucciones) es una especificación que detalla las instrucciones que una CPU de
un ordenador puede entender y ejecutar, o el conjunto de todos los comandos
implementados por un diseño particular de una CPU. El término describe los
aspectos del procesador generalmente visibles a un programador, incluyendo los
tipos de datos nativos, las instrucciones, los registros, la arquitectura de memoria y
las interrupciones, entre otros aspectos.

Instrucciones del ensamblador mpasm.


Para que el microcontrolador lleve a cabo una tarea, debemos indicarle
exactamente qué debe hacer, o en otras palabras, debemos escribir el programa
que el micro ejecutara.

Antes de continuar es necesario definir algunos terminos que se usaran para


explicar las instrucciones:

• f: cualquier registro del microcontrolador


• W: registro de trabajo
• b: posicion de un bit en el registro 'f'
• d: destino, puede ser 'f' (d=1) o 'W' (d=0)
• etiqueta: grupo de caracteres que marcan el inicio de una parte del programa
• []: opcional
• : posicion de un bit dentro de un registro

Instrucciones orientadas a registros.

• ADDWF: Suma W y f
• ANDWF: Realiza la operación lógica AND entre el registro W y el registro "f".
Si "d" es 0 el resultado se almacena en el registro W. Si "d" es 1, el resultado
se almacena en el registro "f".
• CLRF: Borra un registro ¨f¨
• CLRW: Borra el registro de trabajo W
• COMF: Complementa el registro f
• DECF: Decrementa f en 1
• DECFSZ: Decrementa en 1 y salta si el resultado es 0
• INCF: Incrementa el registro f
• INCFSZ: Incrementa en 1 y salta si el resultado es 0
• IORWF: W OR f
• Flags afectados: Z
• MOVF: Mover el registro f
• RLF: Rota el registro f a la izquierda
• RRF: Rota el registro f a la derecha
• SUBWF: Resta f - W
• SWAPF: Intercambio de f
• XORWF:Realiza la función lógica OR exclusiva entre el contenido del registro
Wy
• NOP: No operación. No realiza ninguna operacion, solo consume un ciclo de
reloj
• BCF: Borra el bit 'b'del registro 'f'
• BSF: Activa el bit 'b' del registro 'f'
• BTFSC: Checa un bit y salta si es 0
• BTFSS: Checa un bit y salta si es 1

Instrucciones orientadas a constantes y de control

• ANDLW: W AND literal.


• CALL: Llamada a subrutina.
• CLRWDT: Borra el watchdog timer.
• IORLW: W OR literal.
• MOVLW: Carga un literal en W.
• RETURN: Regresa de una subrutina.
• RETLW: Regresa de una subrutina y carga el valor K en W.
• RETFIE: Regresa de la rutina de servicio.
• SLEEP: Entra en estado de reposo.
• XORLW: W XOR literal.
• SUBLW: Resta L – W.
• MOVWF: Mover el valor del registro W al registro f.

Tipos de arquitecturas
Arquitectura CISC.
CISC, del inglés Complex instruction set computing, Computadora de Conjunto de
Instrucciones Complejo. Los microprocesadores CISC tienen un conjunto de
instrucciones que se caracteriza por ser muy amplio y que permiten realizar
operaciones complejas entre operandos situados en la memoria o en los registros
internos.
Este tipo de repertorio dificulta el paralelismo entre instrucciones, por lo que en la
actualidad, la mayoría de los sistemas CISC de alto rendimiento convierten las
instrucciones complejas en varias instrucciones simples del tipo RISC, llamadas
generalmente microinstrucciones.

Arquitectura RISC.
RISC, del inglés Reduced Instruction Set Computer, Computadora con Conjunto de
Instrucciones Reducido. Se centra en la obtención de procesadores con las
siguientes características fundamentales:

• Instrucciones de tamaño fijo.


• Pocas instrucciones.
• Sólo las instrucciones de carga y almacenamiento acceden a la memoria de
datos.
• Número relativamente elevado de registros de propósito general.

Una de las características más destacables de este tipo de procesadores es que


posibilitan el paralelismo en la ejecución, y reducen los accesos a memoria. Es por
eso que los procesadores más modernos, tradicionalmente basados en
arquitecturas CISC, implementan mecanismos de traducción de instrucciones CISC
a RISC, para aprovechar las ventajas de este tipo de procesadores.

Arquitectura SISC.
(Simple Instruction Set Computing) es un tipo de arquitectura de microprocesadores
orientada al procesamiento de tareas en paralelo. Esto se implementa mediante el
uso de la tecnología VLSI, que permite a múltiples dispositivos de bajo costo que se
utilicen conjuntamente para resolver un problema particular dividido en partes
disjuntas. La arquitectura RISC es un subconjunto del SISC, centrada en la
velocidad de procesamiento debido a un conjunto de instrucciones reducido.

En los microcontroladores destinados a aplicaciones muy concretas, el juego de


instrucciones, además de ser reducido, es "específico", o sea, las instrucciones se
adaptan a las necesidades de la aplicación prevista.

4.5 Lenguajes ensambladores


El lenguaje ensamblador, o assembler (assembly language en inglés), es un
lenguaje de programación de bajo nivel para los computadores,
microprocesadores, microcontroladores y otros circuitos integrados programables.
Implementa una representación simbólica de los códigos de máquina binarios y
otras constantes necesarias para programar una arquitectura dada de CPU y
constituye la representación más directa del código máquina específico para cada
arquitectura legible por un programador.

Un programa escrito en lenguaje ensamblador consiste en una serie de


Instrucciones que corresponden al flujo de órdenes ejecutables que pueden ser
cargadas en la Memoria de un sistema basado en Microprocesador. Por ejemplo,
un Procesador x86 puede ejecutar la siguiente instrucción Binaria como se expresa
en código de máquina:

• Binario: 10110000 01100001 (Hexadecimal: 0xb061)

La representación equivalente en lenguaje ensamblador es más fácil de recordar:

• MOV al, 061h


Esta instrucción significa:

• Asigna el valor Hexadecimal 61 (97 Decimal) al registro "al".

Características
• El lenguaje ensamblador es difícilmente portable, es decir, un código escrito
para un Microprocesador, suele necesitar ser modificado, muchas veces en
su totalidad para poder ser usado en otra máquina distinta, aun con el mismo
Microprocesador, solo pueden ser reutilizados secciones especiales del
código programado.
• Los programas hechos en lenguaje ensamblador, al ser programado
directamente sobre Hardware, son generalmente más rápidos y consumen
menos recursos del sistema (memoria RAM y ROM). Al programar
cuidadosamente en lenguaje ensamblador se pueden crear programas que
se ejecutan más rápidamente y ocupan menos espacio que con lenguajes de
alto nivel.
• Con el lenguaje ensamblador se tiene un control muy preciso de las tareas
realizadas por un Microprocesador por lo que se pueden crear segmentos de
código difíciles de programar en un lenguaje de alto nivel.
• También se puede controlar el tiempo en que tarda una Rutina en ejecutarse,
e impedir que se interrumpa durante su ejecución.
• El lenguaje ensamblador es un código estructurado y gravitatorio
desarrollado sobre un archivo de programación (.ASM), en el cual pueden
existir varios programas, macros o rutinas que pueden ser llamados entre sí.

Tipos de lenguajes ensamblador.


Todos los ensambladores realizan básicamente las mismas tareas, podemos
clasificarlos de acuerdo a características. Así podemos clasificarlos en:

Ensambladores Cruzados.
Se denominan así los ensambladores que se utilizan en una computadora que
posee un procesador diferente al que tendrán las computadoras donde va a
ejecutarse el programa objeto producido. El empleo de este tipo de traductores
permite aprovechar. El soporte de medios físicos (discos, impresoras, pantallas,
etc.), y de programación que ofrecen las máquinas potentes para desarrollar
programas que luego los van a ejecutar sistemas muy especializados en
determinados tipos de tareas.

Ensamblador de una fase.


Estos ensambladores leen una línea del programa fuente y la traducen directamente
para producir una instrucción en lenguaje maquina o la ejecuta si se trata solo de
una pseudoinstruccion. También va construyendo la tabla de simbolos a medida
que van apareciendo las definiciones de variables, etiquetas, etc. debido a su forma
de traducción, estos ensambladores obligan a definir los símbolos antes de ser
empleados para que cuando aparezca una referencia a un determinado símbolo en
una instrucción, se conozca la dirección de dicho símbolo y se pueda traducir de
forma correcta. Estos ensambladores son sencillos baratos y ocupan poco espacio,
pero tiene el inconveniente indicado

Ensamblador de dos fases.


Los ensambladores de dos fases se denominan así debido a que realizan la
traducción en dos etapas. En la primera fase, leen el programa fuente y construyen
una tabla de símbolos. De esta manera, en la segunda fase vuelven a leer el
programa fuente y pueden ir traduciendo totalmente, puesto que conocen la
totalidad de símbolos utilizados y las posiciones que se les ha asignado, estos
ensambladores son los más utilizados en la actualidad.

Ensambladores Residentes.
Son aquellos que permanecen en la memoria principal de la computadora y cargan,
para su ejecución al programa objeto producido. Este tipo de ensamblador tiene la
ventaja de que se puede comprobar inmediatamente el programa sin necesidad de
transportarlo un lugar a otro, como se hacía en cross assembler, y sin necesidad de
programas simuladores.

Sin embargo, puede presentar problemas de espacio de memoria, ya que el


traductor ocupa espacio que no puede ser utilizado por el programador. Asimismo,
también ocupara memoria el programa fuente y el programa objeto, esto obliga a
tener un espacio de memoria relativamente amplio y el indicado para desarrollos de
pequeños sistemas de control y automatismo empleando microprocesadores.

Macroensambladores.
Son ensambladores que permiten el uso de microinstrucciones (macros). Debido a
que su potencia, normalmente son programas robustos que no permanecen en
memoria una vez generado el programa objeto. Puede variar la complejidad de los
mismos dependiendo de las posibilidades de definición y manipulación de las
macroinstrucciones, pero normalmente son programas bastantes complejos, por lo
que suelen ser ensambladores residentes.

Microensambladores.
Generalmente, los procesadores utilizados en las computadoras tienen un
repertorio fijo de instrucciones, es decir, que el intérprete de las mismas interpretaba
de igual forma un determinado codigo de operación. El programa que indica al
intérprete de instrucciones de la UCP como debe actuar se denomina
microprograma. El programa que ayuda a realizar esta microprograma se llama
micro ensamblador. Existen procesadores que permiten la modificación de sus
microprogramas, para lo cual se utilizan micro ensambladores.

Ventajas.
• Rápido en ejecución. (Velocidad de ejecución)
• Ahorra memoria.
• Pocas instrucciones.
• Gratis.

Desventajas
• Difícil programar. (difícil de comprender la metodología de la programación)
• Susceptible a errores. (difícil de encontrar un error)
4.6 Codificación.
El codificador asigna un código binario a cada nivel de salida del cuantificador. Así
si el cuantificador tiene L niveles habrá 2n=L códigos distintos, donde cada palabra
de código se corresponde con uno y solo un nivel.

Codificación NRZI
El NRZI mantiene constante el nivel de tensión la duración del bit. Los datos se
codifican mediante la presencia o ausencia de transmisión de la señal. Un 1 se
codifica mediante la transición (bajo a alto o alto a bajo) al principio del intervalo de
señalización, mientras que un cero se representa por la ausencia de transmisión.

NRZI es un ejemplo de codificación diferencial. La codificación diferencial, en lugar


de determinar el valor absoluto, la señal se codifica en función de los cambios entre
los elementos de señal adyacentes. En términos generales, la codificación de cada
bit se hace de la siguiente manera: si se trata del valor binario O, se codifica con la
misma señal que el bit anterior; si se trata de un valor binario 1, entonces se codifica
con una señal diferente que la utilizada para el bit precedente. En la Figura 1 se
muestra el formato de codificación para el NRZI.

Codificación de Hamming
Este código fue propuesto por R. W. Hamming en 1950 y permite a través de un
subconjunto de códigos de control de paridad localizar la presencia de errores
dentro del mensaje. Estos códigos tienen como muy poca distancia mínima 3.

El código Hamming es clasificado como un código de bloque por que tiene como
entrada un grupo (bloque) de m bits de datos a los cuales se le agregan un grupo
de r bits de parida de acuerdo a reglas preestablecidas, dando como salida un grupo
de n bits comúnmente llamado palabra-código. Así mismo se dice que es lineal
porque satisface la condición de que cualquier par de palabras-código al ser
sumadas en modulo 2 producen otra palabra existente dentro del conjunto
empleado para codificar los posibles mensajes.

Un código de Hamming se puede denotar mediante un par (n,m). Sin 2embargo, los
valores de n y m deberán verificar una serie de condiciones:

• n es la longitud de la palabra de código


• m es el número de bits de datos de la palabra original sin codificar
• el número de bits de paridad será r=n-m, pero deberá cumplirse la siguiente
relación entre la longitud de la palabra de código y el número de bits de
paridad: n=2r-1 con r>=3

Por lo tanto, a cada palabra original se le añade unos bits de paridad para obtener
la palabra de código, de forma que estos bits de paridad sirvan posteriormente para
encontrar y corregir errores que se produzcan en la transmisión.

Conclusión
Con respecto a cada uno de nuestros temas podemos concluir lo siguiente cualquier
conjunto de instrucciones se puede implementar de varias maneras. Todas las
maneras de implementar un conjunto de instrucciones dan el mismo modelo
programado, y todas pueden hacer funcionar los mismos ejecutables binarios. Las
varias maneras de implementar un conjunto de instrucciones dan diversas
compensaciones entre el coste, el funcionamiento, el consumo de energía, el
tamaño, etc. En el caso del lenguaje ensamblador a pesar de ser más rápido de
cualquier otro lenguaje es también el más complejo por eso es utilizado para
complementar los limitantes de los lenguajes de programación de alto nivel. Por
ultimo las técnicas de codificación de gran importancia, sin ellas no serían posible
lo que es el envío y recepción de datos, ya que son parte importante para lograr la
comunicación entre equipos de cómputo. Dependiendo de la situación se deberá
usar una u otra codificación lo cual traerá ventajas y desventajas, para ello debemos
analizar cuál es el tipo de codificación adecuado según lo que vayamos a realizar,
para así obtener el resultado deseado y de la manera más eficiente posible.

Referencias
(29 de novienbre de 2010). Obtenido de 4.2.4 LENGUAJE ENSAMBLADOR:
https://silvamondragon.wordpress.com/2010/11/29/4-2-4-lenguaje-
ensamblador/

(10 de enero de 2015). Obtenido de Conjunto de instrucciones para los


microcontroladores PIC.:
http://www.circuitoselectronicos.org/2011/02/conjunto-de-instrucciones-
para-los.html

(17 de octubre de 2016). Obtenido de Arquitectura RISC, CISC y SISC:


https://www.monografias.com/docs/Arquitectura-RISC-CISC-y-SISC-
FKC9CDAYBZ

(15 de marzo de 2017). Obtenido de CONJUNTO DE INSTRUCCIONES Y


LENGUAJE ENSAMBLADOR:
https://sites.google.com/site/portafolioarqcomp/unidad-5-arquitecturas-
embedidas-o-microcontroladores-mcus/5-3

(07 de junio de 2017). Obtenido de 4.5 Lenguajes ensambladores:


http://sistemasprogramables123456789.blogspot.com/2017/06/45-
lenguajes-
ensambladores.html#:~:text=El%20lenguaje%20ensamblador%20es%20el,
computadoras%20legible%20por%20un%20programador.

(24 de febrero de 2017). Obtenido de TIPOS DE lenguajes ensamblador :


https://es2.slideshare.net/ivansitosprisco/tipos-de-lenguajes-ensamblador-y-
clasificacion-de-memorias?from_action=save

También podría gustarte