This is based on what I know...
Cybrg641 is right. The compiler compiles the source code into 1's and 0's. The only reason why it sounds like they can only do ASM is that usually there aren't C compilers made specially for the COP8, or the PIC. I do know for sure that there are C compilers for the 68HC11 microcontroller.
Assemblers can make code for any chip because YOU tell the assembler what operatives to do. You code DIRECTLY with the CPU's internal commands. With a C compiler, there are commands, but they are translated into the machine code for the specific machine you use it for (An x86 C compiler like BorlandC or PowerC most likely WILL NOT generate code for a Mac).
Like Cybrg641 said, in assembly, it assembles your commands into 1's and 0's. But with a C compiler, It has to compile. There is a slight difference.