sábado, 2 de febrero de 2019

Registro de trabajo y Punteros X,Y,Z

Todos los microcontroladores AVR de 8 bits, desde los ATtiny, ATmega y ATxmega tienen 32 registros de trabajo que van desde R0 a R31. Los Registros de Trabajo tienen la función de alojar los datos más inmediatos que el CPU procesa.

A continuación se puede notar, los registros de trabajo. Estos estan divididos de 16 en 16. La diferencia se encuentra en que los 16 primeros (R0-R15) no permiten el uso de la instrucción LDI, que sirve para cargar constantes al registro. Los registros (R16-31), si admiten el LDI, y por general son los más utilizados por este motivo.

Los registros (R26-R31) pueden adicionalmente funcionar como punteros de 16 bits cada uno.
Registros de trabajo-punteros.
  • El puntero X esta formado por los registros R26,R27.
  • El puntero Y esta formado por los registros R28,R29.
  • El puntero Z esta formado por los registros R30,R31.

Los punteros pueden apuntar a (contener la dirección de) cualquier locación del espacio de RAM. Esto junto con las instrucciones adecuadas conforman el direccionamiento indirecto más potente, muy útil por ejemplo para mover grandes bloques de datos.
Punteros o Apuntadores

  • El AVR tiene los tres últimos pares de registros internos del procesador son usados como punteros de 16 bits al espacio de memoria externa, bajo los nombres X, Y y Z. Esto es un compromiso que se hace en arquitecturas de 8 bits desde los tiempos de Intel 8008.
  • Una palabra(word) esta formada por 16 bits.
PunteroS a SRAM(modo indirecto)
El puntero Z es el único que puede apuntar a la memoria FLASH utilizando la instrucción LPM Y SPM. En este ejemplo se muestra la memoria flash de un Atmega 32.
Apuntamiento a la memoria FLASH

No hay comentarios:

Publicar un comentario

Uso del firmware original de la grabadora USBasp AVR en MX-USBASP (clon chino)

Te vendieron un USBisp pensado que es un USBasp?? Hace 2 meses compré un "USBasp" fui a probarlo y no funcionó....pensé me estafar...