An operand is a value an instruction operates on. ADD needs two: the accumulator, and a second value from memory.
Instructions can supply operands in different ways:
- From memory, by address. Tiny8's LOAD, ADD and SUB work this way: the address field holds an address, and the CPU reads the operand from that address.
- Implicitly: the accumulator is always the other operand, so it needs no field.
- Immediately, inside the instruction itself. Tiny8 has none, but the load immediate extension adds one.
The classic slip is to treat the address as the value. LOAD 9 doesn't put 9 in the ACC; it puts in whatever word is stored at address 9.
In Tiny8 the operand's journey is: address field → MAR (in D) → memory → MDR (in E1) → ALU or ACC (in E2).