[MAR - Memory address register] holds the memory address of the current instruction and then the data that it uses ,[ MDR - Memory data register] Holds the actual instruction, and then the data that has been fetched from memory, [PC - Program counter] Holds the address of the next instruction to be executed, [ AC - Accumulator] Holds the result of an instruction before it is transferred to memory.