举例来说,想象一下我正在构建一个虚拟机.我有一个字节数组和一个while循环,我如何知道从字节数组中读取多少字节,以便下一条指令解释类似于intel 8086的指令?
编辑:(注释)cpu在指令指针处读取操作码,8086和CISC有一个字节和两个字节指令.我怎么知道下一条指令是F还是FF?
编辑:在http://www.swansontec.com/sintel.html上的这篇文章中找到了一个自己的答案
操作代码或操作码位于任何可选前缀之后.操作码告诉处理器执行哪条指令.此外,操作码包含描述期望操作数的大小和类型的位字段.例如,NOT指令具有操作码1111011w.在该操作码中,w位确定操作数是字节还是字.OR指令的操作码为000010dw.在该操作码中,d位确定哪些操作数是源和目的地,并且w位再次确定大小.某些指令有几种不同的操作码.例如,当OR与累加器寄存器(AX或EAX)和常量一起使用时,它具有特殊的节省空间的操作码0000110w,从而无需单独的ModR/M字节.从大小编码的角度来看,记忆精确的操作码位是没有必要的.大致了解特定指令可用的操作码类型更为重要.