Instructions and data are stored in the same memory space within main memory, allowing for flexible program execution and data manipulation.
Stores next instruction address, increments after execution
Holds memory address for read/write operations
Stores data read from or to be written to memory
Holds current instruction being decoded/executed
Stores flags for arithmetic/logical operations
A ← [B] : Copy contents of register B to A
A ← [B] + 1 : Increment B and store in A
A ← [[B]] : Set A to data at address in B
1. MAR ← [PC]
2. MDR ← [[MAR]]
3. CIR ← [MDR]
4. PC ← [PC] + 1