How many operands are named in a typical instruction.
Can any ALU instruction operand be located in memory? Or must all operands be kept internaly in the CPU?
What operations are provided in the ISA.
What is the type and size of each operand and how is it specified?
Of all the above the most distinguishing factor is the first.
The 3 most common types of ISAs are:
1. Stack - The operands are implicitly on top of the stack.
2. Accumulator - One operand is implicitly the accumulator.
3. General Purpose Register (GPR) - All operands are explicitely mentioned, they are either registers or memory locations.
Lets look at the assembly code of
A = B + C;
in all 3 architectures:
Not all processors can be neatly tagged into one of the above catagories. The i8086 has many instructions that use implicit operands although it has a general register set. The i8051 is another example, it has 4 banks of GPRs but most instructions must have the A register as one of its operands.
What are the advantages and disadvantages of each of these approachs?