The memory address register
holds the address of the next memory location where the next instruction is to be executed. While the first instruction is being executed, the address of the next memory location is held by it. The computer’s CPU uses the address bus to communicate which memory address it wants to access, and the memory controller reads the address and then puts the data stored in that memory address back onto the address bus for the CPU to use.
The Memory Address Register is half of a minimal interface between a microprogram and computer storage. The other half is a memory data register.
Far more exotic memory interfaces exist, but this is the least that can work.