Autor Tema: doble acumulador  (Leído 1776 veces)

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

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
doble acumulador
« 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.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado HJG

  • PIC12
  • **
  • Mensajes: 77
Re: doble acumulador
« Respuesta #1 en: 02 de Enero de 2014, 00:10:00 »
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.
« Última modificación: 02 de Enero de 2014, 08:19:34 por HJG »

Desconectado HJG

  • PIC12
  • **
  • Mensajes: 77
Re: doble acumulador
« Respuesta #2 en: 02 de Enero de 2014, 08:31:13 »
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.

Código: [Seleccionar]
     movff     WREG,WX    ; Guardas el valor de W

(tu código)

     movff     WX,WREG    ; Recuperas el valor de W

Saludos
HJ

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: doble acumulador
« Respuesta #3 en: 02 de Enero de 2014, 11:11:59 »
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.
Montando mi primera impresora 3D (Raprep Prusa i3)