Complex Instruction Set Computer

A Complex Instruction Set Computer (CISC) refers to a processor processor where each instruction can perform several low-level operations such as memory access, arithmetic operations or address calculations. The term was coined in contrast to Reduced Instruction Set Computer (RISC).

Before the first RISC processors were designed, many computer architects were trying to bridge the "" - to design s to support s by providing "high-level" instructions such as procedure call and return, loop instructions such as "decrement and branch if non-zero" and complex s to allow data structure and accesses to be compiled into single instructions.

While these architectures achieved their aim of allowing high-level language constructs to be expressed in fewer instructions, it was observed that they did not always result in improved performance. For example, on one processor it was discovered that it was possible to improve the performance by NOT using the procedure call instruction but using a sequence of simpler instructions instead. Furthermore, the more complex the instruction set, the greater the overhead of decoding an instruction, both in execution time and silicon area. This is particularly true for processors which used microcode to decode the (macro) instruction. It is easier to debug a complex instruction set implemented in than one whose decoding is "" in silicon.

Examples of CISC processors are the Motorola 68000 family and the Intel through  and.