cpu如何知道内存中一条指令的大小从而使cs:ip寄存器更改自己的值
来源:互联网 发布:北京华贸广场caffe 编辑:程序博客网 时间:2024/05/18 04:49
cpu里面有个译码器,可以确定当前CS:ip指向机器码对应要执行的指令,包括指令的长度等等信息,
cpu的指令是经过编码的,所以中间有个译码的过程可以参考计算机体系结构里面关于cpu指令设计相关的知识。
CPU内有一个编译器,从IP指向的第一个字节开始,先查找操作码,一个字节不够,再加上下一个字节,直到找到符合的操作码,然后按操作码对操作数的要求凑够操作数,这就是一条指令。
现在INTEL的CPU融合了RISC技术,有点X86虚拟机的概念,近似一RISC的CPU内核外面罩一个CISC代码的X86编译器(X86指令集可以看作CPU公开外放的函数接口)。这还没完,X86编译器出来并不都是可以直接控制累加器、半加器、移位器、触发器等电子器件,可以称为中间码,这些代码在CPU内可以优化,最常见的是把多条指令融合成一条指令再去指挥硬件电路。
阅读全文
0 0
- cpu如何知道内存中一条指令的大小从而使cs:ip寄存器更改自己的值
- 控制寄存器:指令指针寄存器IP:存放下一条指令的地址的偏移量,标志寄存器FR(16):
- 如何知道自己的CPU支持SLAT
- 如何知道自己的CPU支持SLAT
- 如何知道自己的CPU支持SLAT
- CPU如何执行指令(CS/IP) ----汇编
- 32位CPU中所包含的寄存器及其指令
- ARM 简单指令cpu中寄存器的作用
- 8086汇编语言 用 jmp指令设置CS:IP的值
- 汇编JMP语句 IP值和偏移量的问题。问题如下,我想知道IP值是怎么变化的。还有8086一条指令占个几字节啊
- 寄存器、CPU缓存内存的关系
- CPU,寄存器,内存三者的关系
- 8086汇编语言 T命令执行CS:IP所指内存的指令
- 如何知道自己的机器在外网的真实IP
- 如何更改coherent_pool值的大小!
- 寄存器(CPU里面的内存,CPU里面的存储器)
- 关于内存单元和寄存器的大小
- 8086汇编学习之基础知识、通用寄存器、CS/IP寄存器与Debug的使用
- HTTPie 工具使用入门
- 什么时候析构函数需要定义为虚函数
- 链路聚合
- HDU
- 代理模式--原理及实现
- cpu如何知道内存中一条指令的大小从而使cs:ip寄存器更改自己的值
- linux sed命令详解
- 机器视觉——旋转矩阵的计算(二)
- sklearn的precision_score, recall_score, f1_score使用
- WordPress 自定义链接
- 暴力(Cake,HDU 5355)
- DOM中的一些概念
- UDS的CAN刷新软件
- Codis2迁移到Codis3