Registers are discussed in Sections 8.2.5, 8.5 of Wakerly. An n-bit register is an array of n binary memory elements used to store a binary vector. Registers have facilities for loading and reading data, and have control inputs such as LOAD, CLEAR, etc. Registers may be used for storing the state of a state machine (instead of flip flops), or for other storage purposes.
Shift registers are types of registers which have the ability to shifting the binary vector to or fro, bits can be transferred to adjacent memory elements. These registers can be loaded serially.
ANU Engineering - ENGN3213