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:
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í:
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?:
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!.