Meteorología Fácil

Área técnica. => Programación de microcontroladores. => JAL => Mensaje iniciado por: David Met en Diciembre 22, 2011, 08:13:30 AM

Título: Error en la instrucción rotar.
Publicado por: David Met en Diciembre 22, 2011, 08:13:30 AM
Hola amigos.
Necesito rotar el contenido de una variable y no logro encontrar la manera de hacerlo (sin usar asm)
Intenté de las siguiente manera:

temp = temp <<
temp = <<
temp <<

Lo curioso es lo que pasa siguiente. Como necesito rotar dos veces repito la instrucción dos veces.

temp = temp <<
temp = temp <<

Lo curioso es que de esta manera, me da error en la segunda línea y no en la primera. :duda :duda
No quiero mezclar mucho asm con instrucciones de jal porque sino se hace ilegible y hasta puede llegar a confundir. Utilizo una instrucción en asm para intercambiar los bit de menor peso por los bit de mayor peso (instrucción swapf). Tengo entendido que esta instrucción, no la posee Jalv2.
Título: Re: Error en la instrucción rotar.
Publicado por: YO en Diciembre 23, 2011, 10:08:04 AM
Hola David
Muchas veces me pasó que al compilar, me tiraba error en la/s  línea/s siguiente/s a donde se producía realmente el problema. Al corregir el error, esas líneas (que estaban bien para mi pero mal para el compilador) las tomaba sin problemas.
Cuando me tira un error de línea, siempre me fijo una antes y la mayoría de las veces está allí.
Es como si el compilador evaluase las instrucciones a modo de compatibilidád, como que toma la primera y la compara con la que sigue y si no le gustó, te dice que la segunda está mal, pero con relación a la primera.
Volviendo a la rotación, nunca la usé pero se me ocurre que tal vez indicando en la primera instrucción cuantas veces querés rotar, sea suficiente. Como por ejemplo : (for 3 loop) (for 8 loop)

En éste caso no sabría donde poner el indicador ¿temp = temp << 2  0  temp 2 << ?

No lo puedo probar porque en esta compu no tengo instalado el jal y la otra me la tiene secuestrada mi señora con unos trabajos que está haciendo.

Preguntonta:
              ¿ No será que como no le indicas en la primera instrucción cuantos bits queres rotar (si es que rota de a uno) te los tome como que queres rotarlos a todos y que si luego le repetis la misma instrucción y te los deja como antes, te avisa que no tiene sentido la segunda instrucción ?

   Saludos

Título: Re: Error en la instrucción rotar.
Publicado por: David Met en Diciembre 23, 2011, 12:29:13 PM
Hola YO. Efectivamente, el problema parece ser que me falta indicar cuantos bit deseo rotar.
Gracias  ok! ok!