I am using asm language to write my projects. There are several compliers. for example, in basic language=PICBasicPro Complier, in C language=CSS PICC, hitech PICC(the difference of these two complier is some little function differences. example: for output 1 to porta,1 --> CSS: output_high(porta,1) HITECH: RA.1=1 (i don't know exact commannds but it is like this) ), and finally in asm language=MPLAB. MPLAB is a complier and also simulator software. I am using MPLAB.
For asm language please refer instruction sets in PIC microcontroller datasheets. for C or Basic languages, refer help files of related complier.
Differences between asm and highlevel(C or Basic) languages are performance, flexibility, easiness.
ASM code fill space less than highlevel compliers and has more performance.
highlevel languages are more flexible when you change your codes. And it is easy to write code with highlevel langs.
Maybe it's easy to learn asm language because there only 35 instruction sets but sometimes it's hard to know hardware specifications.
I hope it helped to you....