The need for variable length instructions?
The simple answer is that the original designers of the IA wanted to minimise code size so they encoded instructions in an optimal form – i.e. instructions were only as long as they needed to be. This meant that an instruction that needed no operands – such as NOP (no operation) could be encoded in a single 8-bit byte whereas instructions that included the addresses of memory operands are amongst the lengthiest. The best web page I’ve come across that gives the gory details is Understanding Intel Instruction Sizes. Feel free to do your own variable length instructions Intel architecture – Google Search where you’ll have more than enough hits to choose from ;-). Incidentally, this search threw up CPU Technology Overview from ExtremeTech which does exactly what it says in the link!