1) Data transfer instructions move data without changing it between memory and registers, between registers, and between registers and input/output devices. Common instructions include load, store, move, input, and output.
2) Data manipulation instructions perform operations on data to provide computational capabilities. These include arithmetic instructions like add and subtract, logical and bitwise instructions like AND and OR, and shift instructions.
3) Program control instructions alter program flow, like branches, jumps, calls, and returns. They use status bits set by operations to determine conditional branches. Subroutines use call and return instructions to branch to and from the main program.