Thanks. A picky point, but one worth noting anyway: are we implicitly assuming that all instructions take the same amount of time to execute--regardless of the fact that, for example, a move with two deferred operands requires multiple memory fetches?

One is typically forbidden to ask such questions: it's, like, MAGIC. But--once upon a time, when CPUs were implemented by Brontosauruses gated in and out of two neighboring paddocks, one representing "0", the other representing "1"--one had to consult a processor handbook to determine how many cycles are ACTUALLY required for the evaluation of non-immediate, non-register operands. (We used to hang cards around the brontos' necks that matched the FORTRAN variable names. For integers, a young twenty-footer would suffice; when word length was increased to 64 bits, we had to introduce the Diplodocus.)

Of course, this can be swept under the rug by actually implementing "memory" as an independent co-processor that operates at a much faster clock rate--such that the slowest possible instruction, perhaps a three-operand instruction with all operands multiply deferred, fits within one "CPU cycle" in the large.