From my understanding, a CPU register is a temporary storage or working location built into the CPU itself. The CPU includes some functional units such as the ALU (which is part of the chip, as far as I know).
In a 64 bit architecture, we have 16 general purpose registers, that seem to be often used in ASM programs to store temporary values. Going from high to low level, a program is translated to machine code and interpreted by the computer, that executes the instructions.
But if every operation is a kind of arithmetic one, are all of them done using these general purpose registers, taking into account that programs generally need some kind of "temporary" storage for their calculations to be performed? Are they kind of "buffers" for every mathematical operation the CPU needs to calculate?
Do every computation in a CPU needs to be done using registers to place values?