非洲和尚国语版优酷:cpu如何知道内存中一条指令的大小从而使cs:ip寄存器更改自己的值

来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 23:07:18
 cpu里面有个译码器,可以确定当前CS:ip指向机器码对应要执行的指令,包括指令的长度等等信息,cpu的指令是经过编码的,所以中间有个译码的过程
可以参考计算机体系结构里面关于cpu指令设计相关的知识。CPU内有一个编译器,从IP指向的第一个字节开始,先查找操作码,一个字节不够,再加上下一个字节,直到找到符合的操作码,然后按操作码对操作数的要求凑够操作数,这就是一条指令。
  现在INTEL的CPU融合了RISC技术,有点X86虚拟机的概念,近似一RISC的CPU内核外面罩一个CISC代码的X86编译器(X86指令集可以看作CPU公开外放的函数接口)。这还没完,X86编译器出来并不都是可以直接控制累加器、半加器、移位器、触发器等电子器件,可以称为中间码,这些代码在CPU内可以优化,最常见的是把多条指令融合成一条指令再去指挥硬件电路。