Hola. Si, es posible.
Primero debes activar el simulador en el MPLAB.
Vete al menú Debugger->Select Tool->MPLAB SIM.
Esto activará el simulador y aparecerá una nueva barra de herramientas para la simulación.
Es muy útil declarar BreakPoints en los lugares en los que quieres que el simulador se detenga. Esto acelera mucho el análisis de la simulación.
Luego de activar el simulador ensambla el archivo ASM(puedes hacerlo antes de activar el simulador también).
Luego, dependiendo la versión de MPLAB que tengas, la inyección de valores a registros o pines está ubicada en distintos lugares por lo que veo. En mi versión 7.50 ambos se encuentran dentro del menú Debugger->Stimulus.
Haciendo click en New WorkBook accedes a un conjunto de solapas que permiten simular muchas cosas. Como inyección de registros(solapa Register Injection), cambiar el estado lógico de un pin I/O(solapa PIN/Register Actions y/o Advanced Pin/Register).
También verás que hay muchas cosas más. Todas son útiles pero pueden requerir de cierta paciencia y prueba y error hasta encontrarle la mano a cómo funcionan.
También hay otras herramientas muy útiles como el Debugger->StopWatch que muestra cantidad de lineas simuladas hasta el momento, que puedes usar para medir tiempos.
Para ver el valor de ciertos registros(sean SFR o GPR) tienes una herramienta fácil en View->Watch. Allí ingresas o bien el nombre de la variable en Symbol Name o la dirección de memoria en Address.
Otra que utilizo yo es la View-> Hardware Stack. Que muestra la PILA del PIC. La uso especialmente para ver cuántos niveles de anidación máxima poseen algunos programas extensos.
En fin, posee además ventanas que grafican el estado de los pines que definas, seguimiento de las líneas ejecutadas por el simulador, etc...
Son demasiadas como para explicarlas todas, pero todas son muy útiles.
Saludos.