I don't think that C for micros is all that more involved really (see comparisons below) Makes me wonder what exactly it is that makes it so much more efficient.

Code:
void main()
{
   trisb = 0;       
   while(1)    
   {
      portb.0 = 1;        
      delay_ms(500);  
      portb=0x02;       
      delay_ms(500);    
   }
}
Code:
main:
portb.0 = 1
pause 500
portb = 2 
pause 500
goto main
I'm relatively tempted to merge over to C