Linux基于x86运行的硬件基础(1)——寄存器
来源:互联网 发布:linux 复制文件夹内容 编辑:程序博客网 时间:2024/06/07 01:21
x86的寄存器
i386相比之前的系列,寄存器有了一些变化
- 把16位的通用寄存器、标志寄存器以及指令指针寄存器扩充为32位的寄存器
- 段寄存器仍为16位
- 增加了4个32位的控制寄存器
- 增加了4个系统地址寄存器
- 增加了8个调试寄存器
- 增加了2个测试寄存器
通用寄存器
对于i386及后续系列的32位CPU,都有32位的通用寄存器,包括EAX、EBX、ECX、EDX、ESP、EBP、ESI和EDI,还有EIP和EFLAGS。
EAX:累加器,AX代表低16位,AX中包含0-7位的AL,8-15位的AH。
EBX:基址寄存器,同理包含BX,BL和BH。
ECX:计数寄存器,同理包含CX,CL和CH。
EDX:数据寄存器,同理包含DX,DL和DH。
ESP:堆栈指针寄存器,SP代表低16位。
EBP:基址寄存器,BP代表低16位。
ESI:源变址寄存器,SI代表低16位。
EDI:目的变址寄存器,DI代表低16位。
段寄存器
段寄存器在之前的基础上增加了两个段寄存器,即:
CS(代码段寄存器)
DS(数据段寄存器)
SS(堆栈段寄存器)
ES(附加数据段寄存器)
和新增的段寄存器:FS和GS。
状态和控制寄存器
状态标和控制寄存器是由标志寄存器EFLAGS、指令指针寄存器EIP和4个控制寄存器组成。
4个控制寄存器分别为:CR0(机器状态字),CR1(Intel保留),CR2(页故障地址),CR3(页目录地址)。
指令指针寄存器EIP
指令指针寄存器EIP中存放着下一条将要执行指令的偏移量,这个偏移量是相对于目前正在运行的代码段寄存器CS而言的。偏移量加上当前代码段的基地址,就形成了下一条指令的地址。EIP中的低16位可以用IP进行访问。标志寄存器FLAGS
标志寄存器存放着有关处理器的控制标志,如何所示。标志寄存器的第1、3、5、15位及18~31位都还没有定义。
- Linux基于x86运行的硬件基础(1)——寄存器
- linux运行的硬件基础
- Linux 学习笔记( LINUX运行的硬件基础1)
- x86—EFLAGS寄存器详解
- x86—EFLAGS寄存器详解
- x86—EFLAGS寄存器详解
- x86—EFLAGS寄存器详解
- x86—EFLAGS寄存器详解
- x86—EFLAGS寄存器详解
- x86的寄存器
- x86的寄存器
- x86的控制寄存器
- x86寄存器简介(1)
- Linux 核 心 —— 第1章 硬件基础
- x86寄存器的一般功能
- X86通用寄存器的名称
- 在基于ZedBoard的Linux系统下添加自定义硬件IP(1)——启动Linux系统
- 基于X86的小型内存Linux操作系统
- VS2012不能正常加载
- 定义移动设备应用程序中的导航控件、标题控件和操作控件
- tcp客户端最大的fd数
- 在线访谈系统解决方案书
- 内联函数的使用
- Linux基于x86运行的硬件基础(1)——寄存器
- Spider Monkey 在Windows下js32.lib编译
- Viewpager中嵌入自定义可缩放view遇到的问题
- MAC 加速
- 摄影师用1200mm镜头拍摄巨型月亮
- 【左偏树+并查集】Monkey King HDU1512
- 运算符重载----日期类
- 《C专家编程》学习笔记2
- smarty section/foreach获取最后一个循环