We can design stack architectures, accumulator architectures, or general-purpose register architectures. Explain the differences between these choices and give some situations where one might be better than another. How do memory-memory, register-memory, and load-store architectures differ? How are they the same? What are the pros and cons of fixed-length and variable-length instructions? Which is currently more popular?