A register is a discrete memory location within the CPU designed to hold temporary data and instructions
A modern CPU will hold a number of registers.
Program Counter (PC)
This holds the address in memory of the next instruction.
For example if the program counter has the address 305 then the next instruction will be at location 305 in main memory (RAM). When a program is running, the program counter will often just be incrementing as it addresses one instruction after the other, e.g. 305, 306, 307.
Current Instruction Register (CIR)
This holds the current instruction to be executed, having been fetched from memory.
Memory Address Register (MAR)
Remember that data and program instructions have to fetched from memory? The memory address register, or MAR, holds the location in memory (address) of the next piece of data or program to be fetched (or stored).
Memory Buffer Register or Memory Data Register
When the data or program instruction is fetched from memory, it is temporarily held in the 'Memory Buffer Register' or MBR for short sometimes also called the Memory Data Register or MDR
A 'buffer' is a commonly used computer term to describe memory designed to hold data that is on its way to somewhere else.