I found one that totally works for me-
After struggling thru Mike Predko's miserable microcontroller book in the Evil Genius series, and having learned and used Fortran quite a bit in college, I found "PIC Microcontroller and Embedded Systems using Assembly and C for PIC18" by Danny Causey, et al. They explain the inner workings of the language, and give tons of programming examples and good basic functions and program blocks. This is a college textbook, and is easily thorough enough to stand alone as a self-learning foundation. It is written for the PIC 18 series, which means that it teaches the 75 assembly language commands used with those MCUs. The PIC 16 series uses about 35 of these commands, but you can do the same thing with these, it just takes a little more work sometimes.
Good luck