Autor Tema: porque utilizan el swapf y no el movf?  (Leído 3884 veces)

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

Desconectado milton

  • PIC10
  • *
  • Mensajes: 7
porque utilizan el swapf y no el movf?
« en: 05 de Febrero de 2007, 20:06:51 »
¿Porque cuando se produce una interrupcion y luego se restaura el registro STATUS se recurre al swapf y no al movf, por ejemplo?.

un saludo

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: porque utilizan el swapf y no el movf?
« Respuesta #1 en: 05 de Febrero de 2007, 22:50:03 »
¿Porque cuando se produce una interrupcion y luego se restaura el registro STATUS se recurre al swapf y no al movf, por ejemplo?.

un saludo

El swapf no cambia los bits del registro STATUS.  Esa es la única razón.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re: porque utilizan el swapf y no el movf?
« Respuesta #2 en: 05 de Febrero de 2007, 22:56:50 »
Hola milton, SWAPF no se utiliza para restaurar el registro STATUS sino para restaurar el acumulador....Normalmente cuando el Pc salta al vector de interrupción lo primero que se hace es guardar una copia de STATUS y otra del acumuldor, ejemplo:

Código: [Seleccionar]
MOVWF  WTEMP                               
MOVFW STATUS                           
MOVWF  STEMP   

Y al final, y en este orden: primero STATUS y despues acumulador, se restauran los registros. Como comprenderás el orden es importante: el último valor que debemos poner en el acumulador debe ser precisamente el valor del acumulador(valga la redundancia) antes de entrar en la interrupción.

El código sería algo así:

Código: [Seleccionar]
MOVFW STEMP
MOVWF STATUS
SWAPF WTEMP,F
SWAPF WTEMP,W

Creo que a lo que tú te referías es a que: ¿por qué se utilizan las dos últimas lineas, en vez de lo siguiente?:

Código: [Seleccionar]
MOVFW WTEMP

Pues la respuesta es simple si tienes en cuenta que la instrucción MOVF influye sobre el señalizador Z del registro STATUS mientras que la instrucción SWAPF no influye sobre ningún señalizador... con lo que si utilizas  MOVF en vez de SWAPF, existe la posiblidad de que modifiques el registro STATUS antes   de salir...

Espero que te haya servido de ayuda, saludos!.
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: porque utilizan el swapf y no el movf?
« Respuesta #3 en: 06 de Febrero de 2007, 00:33:25 »
wou eso no sabia, jejej  :-/ gracias!!!
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado milton

  • PIC10
  • *
  • Mensajes: 7
Re: porque utilizan el swapf y no el movf?
« Respuesta #4 en: 06 de Febrero de 2007, 06:02:01 »
Si a eso me referia manwenwe, no me explique muy bien  :D. Gracias por tu fantastica explicacion


 

anything