Software
Assembly
I order to use assembly code you need an assembler, Microchip has a free one (MPLAB) but of course is for Windows only...

The GPUtils project is a Microchip MPLAB compatible assembler.
There are official Debian packages containing GPUtils, how convenient.
C
There are lots of commercial C compilers around, there is at least one OpenSource one.

SDCC it actually supports other micro-controllers as well. I'm not quite fond of using C for micro-controllers, usually they generate quite horrible code due to the limited amount of registers available on micro-controllers. Also micro-controllers are usually used for small timing critical applications.
There is of course exceptions to this, well anyway its nice to have the possibility to use C.
Also available as a Debian package.
IDE/Editor
I don't particularly like IDEs but this one have a nice editor PIKdev .
It also has a very nice parallel-port programming algorithm, using the parallel port user-land drivers, no bit banging here.
No official Debian packages they do however have a unofficial one for download at there web-page.

Hardware programming software
PIKdev has a command-line programmer called pkp, however it looks like is not included in the .deb package.
It is however included in the source archive, its even precompiled for x86 processors.
There are lots of other programmer software available, but most of them write directly to the parallel-port hardware.

For those of you that have the MicroChip Picstart Plus or some other serial programmers you might have a look at picp

Simulators
Not quiet as useful as in circuit debuggers, listed for completeness.
gpsim command-line debugger like gdb, with GUI on top like DDD
YaPIDE GUI only debugger, seems to be less mature than gpsim.