TODOPIC

Otros Microcontroladores / Dispositivos programables => Microcontroladores ARM => Mensaje iniciado por: mtristan en 29 de Marzo de 2010, 21:49:54

Título: ¿Qué son los modos de direccionamiento (adressing modes)?
Publicado por: mtristan en 29 de Marzo de 2010, 21:49:54
.


No logro encontrar una respuesta acorde a mis dudas sobre los Modos de Direccionamiento. ¿Alguien puede explicarle a un humilde novato en Freescale qué es lo que son? ¿Es realmente necesario saber sobre ellos para programar el uC exitosamente?  :huh:


Título: Re: ¿Qué son los modos de direccionamiento (adressing modes)?
Publicado por: RICHI777 en 29 de Marzo de 2010, 22:12:41
Hola los modos de direccionamiento son formas que tiene el procesador de procesador datos, ejemplo CLRA pertenece al modo inerente ( inherent mode ) el CPU conoce por la misma instrucción que tiene que hacer, en este caso borra el accumulador A. En modo directo el opcode ( o código de instrucción ) permite obtener/setear el contenido de una posición de memoria direccionable en un byte ( 0x00-0xFF ). Y asi con los demas modos, para programar en C no es necesario saberlos porque el compilador ( que es un excelente compilador ) usa el mas apropiado en cada situación. Pero si es bueno conocerlos, para cuando quieras optimizar código porque seguramente deberas ver el dissambler del código que genera el compilador y ver que cosas genera mas o menos código.

Saludos !
Título: Re: ¿Qué son los modos de direccionamiento (adressing modes)?
Publicado por: mtristan en 30 de Marzo de 2010, 18:17:19
.

Gracias por la respuesta. Me imprimí el set de instrucciones de los HCS08 y me salen dudas. A modo de ejemplo, la operación Clear tiene 7 formas:
Código: ASM
  1. CLR     opr8a
  2. CLRA
  3. CLRX
  4. CLRH
  5. CLR     oprx8,X
  6. CLR     ,X
  7. CLR     oprx8,SP
Puedo llegar a deducir que CLRA borra el acumulador, CLRX el registo índice X y CLRH el H.
Pero ¿qué diferencia hay entre las otras formas de Clear?  :| La misma duda tengo con todas las otras instrucciones...


Título: Re: ¿Qué son los modos de direccionamiento (adressing modes)?
Publicado por: RICHI777 en 30 de Marzo de 2010, 18:25:54
Hola, es correcto lo que pusiste, las demas tiene que ver con el modo de direccionamiento indexado,

CLR   oprx8,X
Borra el contenido de la posicion de memoria apuntada por el registro X + el offset oprx8 ( Por eso el X es llamado Indice )

CLR   ,X
Borra el contenido de la posicion de memoria apuntada por el registro X

CLR   oprx8,SP
Borra el contenido de la posicion de memoria apuntada por el stack pointer + el offset oprx8

Esta ultima, y todas las nuevas que posee el HCS08 a diferencia del HC08 son para hacerle la vida mas facil al compilador C, por eso al HCS08 se le dice C "friendly" ya que la arquitectura esta optimizada para una facil y eficiente forma de trasladar código C a assembler.

Saludos !
Título: Re: ¿Qué son los modos de direccionamiento (adressing modes)?
Publicado por: mtristan en 01 de Abril de 2010, 13:26:09
.


Ahora me va quedando un poco más claro el tema  :idea:. Las instrucciones resultan bastante más complejas que las de los PICs. Aunque le soy un poco reacio al lenguaje C; para los uC prefiero el ASM. Así que voy a seguir investigando un poco a ver si logro dominar los Freescale de una vez por todas.
¡Gracias por tus respuestas!