TODOPIC
Otros Microcontroladores / Dispositivos programables => Microcontroladores ARM => Mensaje iniciado 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:
-
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 !
-
.
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:
CLR opr8a
CLRA
CLRX
CLRH
CLR oprx8,X
CLR ,X
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...
-
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 !
-
.
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!