BIOS (Basic Input Output System) is a series of program instructions that allows your PC to start up when you press the button. Its a program that's does a number of setup-type things before accessing your HD to load the first couple of records on the disk into computer memory. It then turns control over to the code contained in those records, which in turn loads the rest of your OS from the HD.
The BIOS is stored in ROM (Read Only Memory), a slight misnomer because it can be written to (for BIOS updates), but not by your processor directly.
CMOS is another kind of memory that stores your BIOS parameters. It requires power (hence a battery) to maintain its memory when the PC is turned off.
Hope that helps.
Edit: Firmware is neither...