Autor Tema: ¿Qué son los modos de direccionamiento (adressing modes)?  (Leído 3663 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
¿Qué son los modos de direccionamiento (adressing modes)?
« 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:


When you see a good move, look for a better one (Emanuel Lasker)

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: ¿Qué son los modos de direccionamiento (adressing modes)?
« Respuesta #1 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 !

Desconectado mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
Re: ¿Qué son los modos de direccionamiento (adressing modes)?
« Respuesta #2 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...


When you see a good move, look for a better one (Emanuel Lasker)

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: ¿Qué son los modos de direccionamiento (adressing modes)?
« Respuesta #3 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 !

Desconectado mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
Re: ¿Qué son los modos de direccionamiento (adressing modes)?
« Respuesta #4 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!


When you see a good move, look for a better one (Emanuel Lasker)


 

anything