Software, Hardware and Firmware

Software refers to the non physical parts of a computing system.  Examples are the programs which contain the instructions.  The software is written in the programming language such as VB, Java and C

Firmware is the program written on an embedded device such as a microprocessor or a microcontroller.  It controls the functioning of the microprocessor IC

It is written in the assembly level language. It is called firmware as it interfaces between the software and the hardware.

Hardware refers to the physical components of a computing system such as the processor, memory and the peripherals.