Hola
Estoy optimizando un código en C usando #asm y #endasm para un PIC18F2550.
Necesito mover bit por bit un byte a diferentes bytes y lo pienso hacer con RRCF, que es una rotación a la derecha a través del carry. Pero tengo una duda en ensamblador de PIC18 porque nunca lo he usado. La definición de RRCF es:
RRCF f,d,a
donde:
- f es el registro a rotar direccionado con 8 bits
- d es el destino de la operación
- If ‘a’ is ‘0’, the
Access Bank is selected.
If ‘a’ is ‘1’, the
BSR is used to select the
GPR bank (default).
If ‘a’ is ‘0’ and the extended instruction
set is enabled, this instruction operates
in Indexed Literal Offset Addressing
mode whenever f ≤ 95 (5Fh).
No conozco la arquitectura de los bancos de ram de los PIC18 pero mi objetivo es que el resultado quede de nuevo en f.
Ejemplo...
RRCF Dout,f,a ;Rota a la derecha a través del carry y guarda el resultado en Dout
RRLF ADC,f,a ;Rota a la izquierda a través del carry y guarda el resultado en ADC
El truco es que el bit0 de Dout entre al bit0 de ADC a través del carry, pero no sé qué debo escribir en la variable 'a'.
Uso CCS 4.084 como compilador.
Gracias.