`
kingoal
  • 浏览: 156595 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Intel体系结构下常用的寄存器

阅读更多

版权信息:可以任意转载, 转载时请务必以超链接形式标明文章原文出处,谢谢
原文出处: http://libiao.appspot.com/2009/08/intel_arch_registers.html

8个通用寄存器,即EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP

6个段寄存器,即CS,DS,SS,ES,FS,GS

1个EFLAGS寄存器

1个EIP(Instruction Pointer)寄存器

 

下面是这些寄存器的特殊用途

EAX: 累计运算(operand)以及保持结果数据

EBX: 指向数据段的数据

ECX: 字符串以及循环的计数器

EDX: I/O指针

ESI:  指向DS数据段的数据;字符串操作中指向原地址

EDI: 指向ES寄存器所指的数据段的数据地址;字符串操作中指向目标地址

ESP: 指向堆栈指针

EBP: 指向堆栈段中的数据

 

CS: 指向代码段,CPU要执行指令,通过CS段的段选择符(segment selector)找到代码段,然后再根据EIP的内容,来定位执行的指令。需要注意的是,CS段不是一个应用程序能够控制的,而是由内部的处理器操作来控制的,如procedure calls, interrupt handling, task switching等

DS,ES,FS,GS:是四个指向数据段的寄存器。四个数据段可以被加载,一个是当前模块的数据结构,一个是当前模块的上一层的数据结构,第三个是动态地创建数据结构,最后一个是其他的程序的数据结构

SS: 指向堆栈,其不像CS段,其可以实现多个堆栈并且来回自由切换

 

EFLAGS: EFLAGS寄存器包括一组状态标示(status flags),一个控制标示(control flag),以及一组系统标示(system flags)。在这些flags中,有一些是可以通过一些指令进行直接修改的,但是没有对整个寄存器进行检查或者修改的指令。但是可以调用指令LAHF, SAHF, PUSHF, PUSHFD,POPF, POPFD将EFLAGS的一组数据移动到堆栈或者EAX寄存器中,然后使用BT/BTS/BTR以及BTC等指令进行检查或者更改。当暂停一个进程的时候,处理器自动地将EFLAGS的状态保存在TSS(Task State Segment)中。若重新进行这个进程的时候,再从TSS中加载到EFLAGS中去。如果是中断或者异常处理的话,是将EFLAGS保存在堆栈中

状态标示(Status Flags): 表明算术运算指令的状态,对应于EFLAGS寄存器中的0,2,4,6,7以及11 比特。

控制标示(Control Flag):只有位于寄存器中第十位的Direction Flag,来设定字符串指令的行为,若DF标示以及被设了的话,字符串操作时从高地址往低地址进行操作;否则字符串地址是从低地址往高地址操作

系统标示(System Flags): 这些标示不是应用程序所能够更改的。

 

EIP: 指令指针。EIP指针保存的是下一个要执行的指令的在当前代码段中的位移(the offset in the current code segment for the next instruction to be executed)。其对于指令JMP, Jcc, CALL,RET,IRET等非常有用

永久链接: http://libiao.appspot.com/2009/08/intel_arch_registers.html

分享到:
评论

相关推荐

    英特尔64和 IA-32 体系结构的软件开发人员手册卷4-特定模型寄存器.pdf

    英特尔64和 IA-32 体系结构的软件开发人员手册卷一共4卷,此卷为卷4。要下载其他卷可看本人的其他资源。也可以直接下载合集

    x86架构常见寄存器介绍

    如果你对底层原理和计算机体系结构感兴趣,那么学习汇编语言将是一次很有意义的体验。掌握汇编语言可以让你更深入地理解计算机是如何工作的,对于系统级编程、驱动开发、反汇编和调试等方面都有很大的

    浅谈PCIe体系结构

    浅谈PCIe体系结构 浅谈PCIe体系结构 - 1 - 目录 - 1 - 第I篇PCI体系结构概述 - 1 - 第1章PCI总线的基本知识 - 3 - 1.1 PCI总线的组成结构 - 6 - 1.1.1 HOST主桥 - 6 - 1.1.2 PCI总线 - 7 - 1.1.3 PCI设备 - 7 - ...

    汇编语言程序设计-80X86体系结构

    介绍了intel 80X86CPU的编程结构,从8086/8088到pentium,重点是CPU寄存器及内存管理。

    Intel® 64 and IA-32 Architectures Volume 4 Model-Specific Registers.pdf

    Intel 64和IA-32架构软件开发人员手册,第4卷:特定于模型的寄存器(订单编号335592)是描述Intel 64和IA-32体系结构处理器的体系结构和编程环境的集合的一部分。

    intel开发手册 共10卷 更新至2024.03.31最新版

    描述 英特尔 64 和 IA-32 体系结构的操作系统支持环境,包括:内存管理、保护、任务管理、中断和异常处理、多处理器支持、散热和电源管理功能、调试、性能监控、系统管理模式、虚拟机扩展 (VMX) 指令、英特尔 虚拟...

    计算机科学丛书:计算机组成原理 [英] 艾伦·克莱门茨(Alan Clements)(2017.3出版)

    本书由资深的计算机体系结构教育家Alan Clements博士编写,原书名为《计算机体系结构:原理与演变》(Computer Organization & Architecture: Themes and Variations),书中不仅覆盖单机系统的组成原理和系统结构的...

    Intel® 64 and IA-32 Architectures.pdf

    本文档包含所有四个卷的英特尔64和IA-32体系结构软件开发人员手册:基本体系结构,订单号253665; 指令集参考A-Z,订单号325383; 系统编程指南,订单号325384; 型号特定寄存器,订单号33592。 评估您的设计需求时...

    游戏编程参考手册及应用指令

    本教程详细的介绍了MMX指令集简介(寄存器,指令集等),C程序优化之路,INTEL 体系结构以及指令集的进步(MMX和SSE) 等内容。

    regmap:x86_64系统的内存映射寄存器

    在这些体系结构上,具有远见卓识的寄存器和存储器访问协同作用降低了指令的复杂性:加载或存储寄存器的开发人员只需知道要在存储器上进行操作的指令即可。 不幸的是,设计8086的英特尔架构师没有欣赏这些架构的知识...

    04 Model- specific registers.pdf

    英特尔64和IA-32体系结构软件开发人员手册-卷4,特殊寄存器篇

    Intel 64 and IA-32架构软件开发手册--四卷版-en.pdf

    英特尔64和IA-32体系结构软件开发人员手册-四卷全。 卷1:Intel x86平台的基本架构和执行环境。 卷2:x86指令。 卷3:介绍x86系统编程的基础,包括内存管理、任务管理、中断、异常、虚拟化等等。 卷4:介绍x86 CPU上...

    x86 x64体系探索及编程part1

    282 11.4.1 在Intel64 下的CR3 与PDPTE 寄存器 283 11.4.2 在AMD64 下的CR3 285 11.4.3 PAE paging 模式里的PDPTE 结构 286 11.4.4 PAE paging 模式里的PDE 结构 286 11.4.5 PAE paging 模式里的PTE 结构 288 ...

    x86 x64体系探索及编程 part2

    282 11.4.1 在Intel64 下的CR3 与PDPTE 寄存器 283 11.4.2 在AMD64 下的CR3 285 11.4.3 PAE paging 模式里的PDPTE 结构 286 11.4.4 PAE paging 模式里的PDE 结构 286 11.4.5 PAE paging 模式里的PTE 结构 288 ...

    x86 x64体系探索及编程part4

    282 11.4.1 在Intel64 下的CR3 与PDPTE 寄存器 283 11.4.2 在AMD64 下的CR3 285 11.4.3 PAE paging 模式里的PDPTE 结构 286 11.4.4 PAE paging 模式里的PDE 结构 286 11.4.5 PAE paging 模式里的PTE 结构 288 ...

    x86 x64体系探索及编程part3

    282 11.4.1 在Intel64 下的CR3 与PDPTE 寄存器 283 11.4.2 在AMD64 下的CR3 285 11.4.3 PAE paging 模式里的PDPTE 结构 286 11.4.4 PAE paging 模式里的PDE 结构 286 11.4.5 PAE paging 模式里的PTE 结构 288 ...

    C语言函数调用栈(一)

    程序的执行过程可看作连续的函数调用。当一个函数执行完毕时,程序要回到调用指令的下一条指令(紧接call指令)处继续执行。函数调用过程通常使用堆栈...Intel32位体系结构(简称IA32)处理器包含8个四字节寄存器,如下图

    基于ARM嵌入式系统的通用bootloader的设计与实现

    第二章 ARM体系结构介绍 8 2.1 ARM core描述 8 2.2 编程模型介绍 10 2.2.1 ARM处理器模式 10 2.2.2 ARM寄存器组介绍 10 2.2.3 ARM存储系统 12 2.2.4 ARM指令集介绍 13 2.2.5 ARM体系的异常...

    微机原理与接口技术 习题参考答案

    具有丰富的指令系统,且CPU的内部结构有很大改进,体系结构与指令更为完善利丰富,采用了多级中断、多种寻址方式、段式寄存器等结构。 4) 第四代微处理器 1985~到1992年为32位微处理器和微型计算机时代。这一时期的...

Global site tag (gtag.js) - Google Analytics