一个CPU取指令的有关问题

一个CPU取指令的问题
见以前有人提过,不过看了回答不太信服,希望能有比较肯定的答复。问题描述如下:

  内存地址空间上存了一堆二进制数据,有的是数据有的是地址,CS:IP从内存上去取指令,一次取一条指令出来放入缓存里然后CPU执行。问题是CS:IP是怎么取指令的,因为每条指令的长度是不一样的,CPU怎么知道要取两个字节的还是三个字节的呢

------解决方案--------------------
指令是由操作码和地址码组成的,操作码告诉机器执行什么动作。CS:IP从内存上取操作码或地址码,不是取一条指令来执行,然后IP自动+1,指向下一地址。每条指令功能不同,长度也不同,当取操作码时,机器根据操作码来判断多少字节的指令。
------解决方案--------------------
看看 cpu 的设计/工作原理,指令编码格式

深入理解计算机系统 有讲
------解决方案--------------------
每条指令功能不同,长度也不同,当取操作码时,机器根据操作码来判断多少字节的指令。