cpu如何知道内存中一条指令的大小从而使cs:ip寄存器更改自己的值

cpu里面有个译码器,可以确定当前CS:ip指向机器码对应要执行的指令,包括指令的长度等等信息,

cpu的指令是经过编码的,所以中间有个译码的过程可以参考计算机体系结构里面关于cpu指令设计相关的知识。

CPU内有一个编译器,从IP指向的第一个字节开始,先查找操作码,一个字节不够,再加上下一个字节,直到找到符合的操作码,然后按操作码对操作数的要求凑够操作数,这就是一条指令。

 现在INTEL的CPU融合了RISC技术,有点X86虚拟机的概念,近似一RISC的CPU内核外面罩一个CISC代码的X86编译器(X86指令集可以看作CPU公开外放的函数接口)。这还没完,X86编译器出来并不都是可以直接控制累加器、半加器、移位器、触发器等电子器件,可以称为中间码,这些代码在CPU内可以优化,最常见的是把多条指令融合成一条指令再去指挥硬件电路。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值