An Instruction set is the set of commands that a microprocessor inherently knows how to do. It deals with the programming related part of computer architecture which defines instructions, registers, addressing modes, interrupt and exception handling, native data types etc. which that particular microprocessor understands. It is the instruction set that determines the type of software that can be run on that architecture. There are many Instruction Set Architectures available in the market like 4004, 8085, Z8, ARM, MIPS etc.