Para la inicialización de una E / S en la imagen, la hoja de datos indica que debe borrarse, configurar correctamente el TRIS y borrar los bits de PORT y LAT. Pensé que entendía por qué y el programa funciona. Sin embargo, cuando se mira el desmontaje, la limpieza del PUERTO y de la LAT generan las mismas instrucciones. No busqué más, pero creo que los bits de PORT se borran como resultado de la compensación de bits de LAT.
Hay una razón específica por la que la hoja de datos (asm) indicada para borrar tanto el PORT como el LAT y en C se reduce a una acción solo en el LAT.
El ejemplo del código C lleva a ambos asm idénticos después de la compilación:
PORTAbits.RA0 = 0;
LATAbits.LATA0 = 0;