#include <pic/p16f877a.h>
#include <system.h>
#include <pinio.h>
int main(void)
 {
   unsigned char dato=0xF0;
   unsigned char res;
   //Port B comme sortie
   ASM("BANKSEL TRISB");
   ASM("MOVLW 0x00");
   ASM("MOVWF TRISB");
   //0xF0 --> PORTB
   ASM("BANKSEL F_REG");// la donnée se trouve dans la banque de F_REG
   ASM("MOVF %0,W"::"r" (dato));
   ASM("BANKSEL PORTB");
   ASM("MOVWF PORTB");
   //PORTB --> res
   ASM("BANKSEL PORTB");
   ASM("MOVF PORTB,W");
   ASM("BANKSEL F_REG");//res se trouve en la banque de F_REG
   ASM("MOVWF %0":"=v" (res));
   //Quand tu finis d'écrire en assembleur
   // tu dois toujours le quitter dans la banque de F_REG,
   //dans le cas contraire le programme ne fonctionnera pas..
   //Je mets le micro en sommeil
   sleep();
   return 0;
 }
