PDF de programación - Registros y memoria en Atmel

Imágen de pdf Registros y memoria en Atmel

Registros y memoria en Atmelgráfica de visualizaciones

Publicado el 29 de Diciembre del 2019
187 visualizaciones desde el 29 de Diciembre del 2019
1,3 MB
28 paginas
Creado hace 3a (13/06/2016)
REGISTROS Y MEMORIA EN ATMEL

REGISTROS Y MEMORIA EN ATMEL

© Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la
Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción,
puesta a disposición del público y en general cualquier otra forma de explotación de toda o
parte de la misma.

La utilización no autorizada de esta obra, así como los perjuicios ocasionados en los
derechos de propiedad intelectual e industrial de la Universidad Europea de Madrid, S.L.U.,
darán lugar al ejercicio de las acciones que legalmente le correspondan y, en su caso, a las
responsabilidades que de dicho ejercicio se deriven.



2

REGISTROS Y MEMORIA EN ATMEL

Índice

Presentación
Ejemplos de codificación estándar
Atmega328 arquitectura de CPU
Registros
Registros de entrada/salida del ATmega328p
Instrucciones de movimiento de datos. LDI
Otras instrucciones de movimiento de datos
La memoria del ATmega328p
Las variables del programa y vectores (array)
Instrucciones para la lectura/escritura de memoria. LDS
Lectura/escritura en memoria, direccionamiento indirecto
Resumen
Referencias bibliográficas

4
6
9
10
13
15
17
20
21
23
25
27
28

© Universidad Europea de Madrid. Todos los derechos reservados. 3



REGISTROS Y MEMORIA EN ATMEL

Presentación

A estos niveles ya no es necesario decir que un ordenador y, por consiguiente, una CPU, solo
pueden manejar dos valores
dos valores (1/0, H/L, T/F, etc.) y que esta unidad de información mínima
se llama bitsbits. Históricamente, por razones constructivas, es fácil de manejar grupos de 8
bits, a lo que se le llama bytebyte.

Pero, ¿y la palabra? ¿Qué es una palabra en términos de almacenamiento de información?
Una palabra es una unidad de tamaño lógica
unidad de tamaño lógica (no está completamente definida) de ahí que
cada fabricante la especifique. Para Intel actualmente palabra son 64 bits, es decir, 8 bytes.
Hasta no hace mucho, palabra era 32 bits, cuatro bytes (para máquinas 32 bits), es una
unidad ficticia, que cada fabricante establece su tamaño de palabra.

*

La decisión de establecer uno u otro tamaño viene definido para lograr la máxima
efectividad y rendimiento
tamaño de datos donde
efectividad y rendimiento en un microprocesador. La palabra, es el tamaño de datos
el microprocesador es óptimo en su funcionamiento
óptimo en su funcionamiento, ya que todo el hardware del ordenador
está diseñado para trabajar con ese conjunto de datos, de manera que la velocidad de
procesamiento de información sea máxima. Otros tamaños, ya sean mayores o menores,
provocan una pérdida de efectividad.

*
Para los microprocesadores ATmega (los que incorporan muchas de las placas Arduino ),
la palabra se define en 16 bits, es decir, dos bytes.

*

Siguiendo con obviedades, está claro que todo en un ordenador está representado,
almacenado y manipulado utilizando solo bits
solo bits (números enteros, números en punto
flotante, caracteres, documentos, programas, archivos, carpetas, imágenes, sonidos,
vídeos, etc., los cuales se codifican mediante números).

Esto lleva a la necesidad de definir estándares

estándares para la codificación utilizando los bits.

Los objetivos

objetivos que se pretenden alcanzar con este recurso son los siguientes:

Analizar el almacenamiento de datos

almacenamiento de datos en ensamblador.

Identificar los estándares para la codificación

codificación utilizando bits.

© Universidad Europea de Madrid. Todos los derechos reservados. 4



REGISTROS Y MEMORIA EN ATMEL

*

Esta marca es una marca registrada que se cita para uso exclusivamente docente.

© Universidad Europea de Madrid. Todos los derechos reservados. 5



REGISTROS Y MEMORIA EN ATMEL

Ejemplos de codificación estándar

A continuación, se muestra una serie de ejemplos de estándares, con su respectiva
codificación:

Número entero sin signo : binario natural: 17 = 00010001 .
Número entero sin signo
2

d

Número entero con signo en complemento a 2: -17 = 11101111 .
Número entero con signo
2

d

Número real en punto flotante
Número real en punto flotante .

Carácter: en codificación ASCII: 'a' = 97 = 1100001 .
Carácter
2

d

Imagen
Imagen: matriz de píxeles (se dispone como una matriz solo en la pantalla).

El color de cada píxel se debe especificar (utilizando los números de colores, ex
RGB).

Una imagen de 1600x900 píxeles (resolución de mi escritorio) en color verdadero
usa 46080000bits (5MiB).

Documento
Documento: conjunto de caracteres, imágenes, posiciones y formatos, también
codificada como números.

Sonido
Sonido: una matriz de números (se interpreta como sonido de los altavoces).

Vídeo
Vídeo: una matriz con una secuencia de imágenes y sonidos intercalados (AVI).

ASCII

© Universidad Europea de Madrid. Todos los derechos reservados. 6



REGISTROS Y MEMORIA EN ATMEL

ASCII
ASCII

La CPU trabaja con los bits, pero, ¿qué es en realidad un bit? ¿Qué aspecto físico tiene un
bit?

Un bit puede tener una serie de cualidades
manipula:

cualidades dependiendo de cómo se almacena o se

© Universidad Europea de Madrid. Todos los derechos reservados. 7



REGISTROS Y MEMORIA EN ATMEL

Cuando se
Cuando se
almacena
almacena

potencial eléctrico (voltios) bajo o alto (L/H), por

Es un potencial eléctrico
ejemplo, en un condensador o de transistores (memorias).

Es una región magnetizada

región magnetizada (disco duro, cintas, disquetes).

Es una región brillante/opaco

región brillante/opaco (CD/DVD/BlueRay).

Cuando es
Cuando es
manipulado en la
manipulado en la
CPUCPU

potencial eléctrico bajo o alto (H/L) almacenado en un

Es un potencial eléctrico bajo o alto
registro y/o en un bus de comunicación:

bus transmite un bit de un circuito a otro, de forma

Un bus transmite un bit de un circuito a otro
instantánea y sin modificarlo.

© Universidad Europea de Madrid. Todos los derechos reservados. 8



REGISTROS Y MEMORIA EN ATMEL

Atmega328 arquitectura de CPU

En el siguiente gráfico se muestra el diagrama en bloques de la arquitectura de un
arquitectura de un
microcontrolador Atmega328
microcontrolador Atmega328:

Fuente: cortesía de Atmel

© Universidad Europea de Madrid. Todos los derechos reservados. 9



REGISTROS Y MEMORIA EN ATMEL

Registros

Un registro es un componente electrónico básico, cuya función es almacenar
almacenar
temporalmente un valor
temporalmente un valor.

como

una

(pero
Funciona
extremadamente rápida) memoria para uno o
más bits (típicamente una palabra).

pequeña

Solo se actualiza el valor almacenado cuando
se activa.

La señal de disparo para modificar su valor almacenado proviene de la unidad de
control.

En caso de que no sea disparada, mantiene el valor almacenado indefinidamente, no
necesitando procesos de refresco de la información.

El registro más utilizado en microprocesadores, es el registro paralelo-paralelo:

Los datos se almacenan o leen todos a la vez (paralelo).

© Universidad Europea de Madrid. Todos los derechos reservados. 10



REGISTROS Y MEMORIA EN ATMEL

 Banco de registros de propósito general del Atmega2560

En detalle

Banco de registros de propósito general del Atmega2560
Banco de registros de propósito general del Atmega2560

Atmega328 tiene 32 registros

32 registros de propósito general de ocho bits cada

ocho bits cada uno.

Los registros ocupan las primeras posiciones de la memoria de datos SRAM.

Aunque son registros de carácter general, y todos son accesibles desde programa
son accesibles desde programa,
algunos de ellos presentan características especiales, que modifican ligeramente sus
posibles usos:

no se puede almacenar un valor constante directamente, solo
Del registro R0 a R15 no se puede almacenar un valor constante
acepta datos de otros registros. Por lo que pueden ser solo utilizables como fuente y
destino de operaciones aritméticas.

Del registro R16 a R31 permiten escritura de constantes
operaciones. Estos son los más fáciles de usar.

permiten escritura de constantes , así como la utilización en

Los registros del R26 a R31 también se pueden utilizan para formar registros dobles
formar registros dobles
de 16 bits
de 16 bits (para datos de 16 bits y direcciones).

Registros de 16 bits

Los registros del R26 a R31 pueden ser utilizados en pares
bitsbits:

utilizados en pares para formar tres registros de 16
registros de 16

© Universidad Europea de Madrid. Todos los derechos reservados. 11



REGISTROS Y MEMORIA EN ATMEL

R27:R26 forman el registro "X".

R29:R28 forman el registro "Y".

R31:R30 forman el registro "Z".

Estos pares de registros, X, Y, y Z se pueden utilizar para almacenar datos de 16 bits
permite a una CPU de 8 bits como los ATmega operar rápidamente con datos de 16 bits.

almacenar datos de 16 bits, lo que

También tienen la función de aumentar y facilitar el manejo de punteros
manejo de punteros. Ya que están
conectados a circuitos específicos que permiten auto-incremento y auto-decremento en las
instrucciones de movimiento de datos (lo que permite manejarse rápidamente y fácilmente
con arrays y matrices).

© Universidad Europea de Madrid. Todos los derechos reservados. 12



REGISTROS Y MEMORIA EN ATMEL

Registros de entrada/salida del ATmega328p

El Atmega328 tiene tres puertos de E/S de ocho bits cada uno, para comunicarse con "el
mundo". Estos puertos tienen su correspondiente terminal
correspondiente terminal en la placa Arduino , tal y como
se puede ver en la siguiente imagen:

*

Fuente: cortesía de Atmel

Todos los puertos tienen pines I/O bidireccionales que pueden actuar como entradas
entradas o
salidas digitales
salidas digitales (cada bit/pin se puede configurar de forma independiente como entrada o
como salida).

Estos puertos, además de servir
  • Links de descarga
http://lwp-l.com/pdf17094

Comentarios de: Registros y memoria en Atmel (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad