You can load a .hex file such as my kbm06.hex into the chip with a
"chip programmer" program such as avrdude [1] or Ponyprog [2] that
runs on your PC and works through some sort of physical connection to
the chip, usually a chip socket wired to your PC's parallel port.
Atmel also has a free programmer, AVRprog, [3] but I think it requires
one of their development boards rather than a simpler interface.
You can assemble an assembly-language source file such as my kbm06.asm
with an assembler program such as avra [4] or Atmel's avrasm [5] thus
producing a .hex file to be loaded as above.
There is also the WinAVR package [6] which includes a (gcc) C
compiler-assembler, an integrated development environment, the avrdude
programmer, a GUI for avrdude, and I don't know what all else. WinAVR
is 70MB (installed) worth of free software development tools
specialized for Atmel AVR chips. It runs under almost all versions of
Microsoft Windows. Unfortunately I haven't figured out how to make
Winavr's gcc (avr-gcc) work with kbm06.asm, the assember code I wrote
for Atmel's assembler.
There is also Atmel's free simulator/integrated development
environment AVR Studio 4 [6], which you can use with one of the free
programmers.
Under Linux it appears the easy choice is the avra assembler and
either the avrdude or ponyprog programmer.
Soon I'll post step-by-step instructions for the ATtiny2313, in
Windows (first) and Linux, using some combinations of avra or avrasm
and ponyprog or avrdude. But first I've must connect a chip socket to
my parallel port. It looks like Ponyprog and avrdude both list
several ways to do this so I'll try to pick one they both support. I
note that the avrdude notes say that Atmel's description of the
ATtiny2313's fuses is wrong(!)
1 http://www.bsdhome.com/avrdude/
2 http://www.lancos.com/ppwin95.html
3 http://www.atmel.com/dyn/resources/prod_documents/ASM.ZIP
4 http://sourceforge.net/projects/avra
5 http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725
6 http://sourceforge.net/projects/winavr/