Registers A, B and C are simply latches made out of flip-flops. (See the section on “edge-triggered latches” infor details.)
The address latch is just like registers A, B and C.
The program counter is a latch with the extra ability to increment by 1 when told to do so, and also to reset to zero when told to do so.
The ALU could be as simple as an 8-bit adder (see the section on adders infor details), or it might be able to add, subtract, multiply and divide 8-bit values. Let’s assume the latter here.
The test register is a special latch that can hold values from comparisons performed in the ALU. An ALU can normally compare two numbers and determine if they are equal, if one is greater than the other, etc. The test register can also normally hold a carry bit from the last stage of the adder. It stores these values in flip-flops and then the instruction decoder can use the values to make decisions.
There are six boxes marked “3-State” in the diagram. These are tri-state buffers. A tri-state buffer can pass a 1, a 0 or it can essentially disconnect its output (imagine a switch that totally disconnects the output line from the wire that the output is heading toward). A tri-state buffer allows multiple outputs to connect to a wire, but only one of them to actually drive a 1 or a 0 onto the line.
The instruction register and instruction decoder are responsible for controlling all of the other components.