TODOPIC
Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: groundman en 01 de Enero de 2014, 17:35:21
-
hola estoy relizando un programa en el que necesito extraer un dato de un registro y cargarlo en el acumulador.pero el valor del acumulador va a cambiar
y perdere ese dato.y no puedo usar un registro general porque esta en otro banco.
se me ocurre guardar el dato en un registro especial y luego recuperarlo.ya que estos registros no se alteran al conmutar los bancos de ram.pero tendria
que asegurarme de que no voy a usar ese registro.en caso contrario podrian alterarse los datos sin quereslo.
estoy con el pic 18F2550.no hay otra manera de hacer lo que yo quiero? ojala hubiera como un segundo acumulador.
-
Podrías utilizar un registro cualquiera de la mitad mas baja del banco "0" y acceder a el mediante el "Access Bank", o puedes utilizar la sentencia movff que te permite mover datos entre dos registros de cualquier banco, lo puedes utilizar con el registro "W" si accedes a el en el Banco 15, recuerda que en estos micros al registro "W" se puede acceder como si fuese un registro mas. Está mapeado en la dirección 0xFE8 (WREG).
Saludos
HJ
Edito: Los únicos registro que no pueden utilizarse como destino del instrucción movff son PCL, TOSU, TOSH y TOSL.
-
La idea sería hacer lo siguiente, suponiendo que tienes un registro al que llamamos WX que puede estar definido en cualquier banco que exista físicamente en tu micro.
movff WREG,WX ; Guardas el valor de W
(tu código)
movff WX,WREG ; Recuperas el valor de W
Saludos
HJ
-
gracias por responder.al final realize un direccionamiento indirecto.no me acordaba de que la conmutacion de bancos no afecta a esta forma de
introducir datos en registros.