Storing all data in registers would make most CPUs too complicated (and very expensive). Therefore, registers usually only store the data that the CPU is working on "right now". The rest of the data used by the program is stored in RAM (Random Access Memory). Except in microcontrollers, RAM is usually stored outside the CPU in separate chips.