My text book doesn't seem to answer this question, just that it has to 'decode' the instruction, so it doesn't answer how it knows it has an instruction in the first place.
My research into this gives me possibly two answers:
1) It can't because both data and instructions look the same in memory, so it has to use the Program Counter to load the next instruction which may or may not fetch the next data it needs through addressing.
2) Something something opcodes something....
I'm trying to figure out a clearly understandable way of explaining this so I know I can understand it.