Intel X86 CPU寄存器学习笔记
本文对Intel CPU寄存器做一些浅显的介绍。Intel处理器寄存器在很多教科书上有,网络也有很多文章涉及到。因此本文在这些基础上做一些归纳总结,另外也参考了Intel IA32架构软件开发手册。
一、Intel CPU发展历程
1、16位处理器(1978)
IA-32架构从16位处理器的发展而来,即8086和8088。8086拥有16比特寄存器、16比特外部数据总线,20比特寻址能力,共1MB地址空间。8088与8086相似,但其外部数据总线为8比特。
8086/8088引入分段机制(segmentation),16比特的段寄存器可指向最大64KB内存,同时使用4个段寄存器,能够访问256KB空间。20比特的地址由段寄存器和另一个16比特指针组成,则可以访问1MB范围的地址。
2、Intel 286处理器(1982)
Intel 286为IA-32架构引入了保存模式。保护模式使用段寄存器作为选择子或指针来索引描述符表(descriptor table)。描述符提供24比特基地址,可寻址16MB范围。支持虚拟内存管理,以及其它保护模式机制,包括:段限制检查、只读、只执行段、4个特权等级。
3、Intel386处理器(1985)
Intel386处理器是IA-32第一个32位处理器。引入32比特寄存器,同时使用操作符和寻址。低16位寄存器与8086等早期处理器保持兼容。386支持32比特地址,寻址空间达到4GB。另外支持段内存(segmented-memory)模式和扁平内存(flat-memory)模式。
(其它有空再慢慢写)
二、寄存器分类
8个数据寄存器:EAX、EBX、ECX、EDX
2个变址寄存器:ESI、EDI
2个指针寄存器:ESP、EBP
1个标志寄存器:EFLAGS
6个段寄存器:CS、DS、ES、FS、GS、SS
5个控制寄存器:CR0、CR1、CR2、CR3、CR4
8个调试寄存器:DR0、DR1、DR2、DR3、DR4、DR5、DR6、DR7
4个系统地址寄存器:GDTR、IDTR、LDTR、TR
其他寄存器:EIP、TSC等
二、寄存器分类详解
1、EAX, EBX, ECX, EDX都可以作为32位寄存器、16位寄存器或者8位寄存器使用。EAX可作为累加器用于乘法、除法及一些调整指令,对于这些指令,累加器常表现为隐含形 式。EAX寄存器也可以保存被访问存储器单元的偏移地址。EBX常用于地址指针,保存被访问存储器单元的偏移地址。ECX经常用作计数器,用于保存指令的 计数值。ECX寄存器也可以保存访问数据所在存储器单元的偏移地址。用于计数的指令包括重复的串指令、移位指令和循环指令。移位指令用CL计数,重复的串 指令用CX计数,循环指令用CX或ECX计数。EDX常与EAX配合,用于保存乘法形成的部分结果,或者除法操作前的被除数,它还可以保存寻址存储器数据。
2、EDI和ESI常用于串操作,EDI用于寻址目标数据串,ESI用于寻址源数据串。
3、EBP和ESP是32位寄存器,也可作为16位寄存器BP, SP使用,常用于椎栈操作。
4、标志寄存器EFLAGS
控制任务状态和模式切换、中断处理、指令追踪和访问权限控制.寄存器中的标志位需要特权指令代码才可以修改(特权指令:运行在内核态下的代码)
寄存器如图所示:
5、段寄存器
段寄存器是根据内存分段的管理模式而设置的。内存单元的物理地址由段寄存器的值和一个偏移量组合而成
的,这样可用两个较少位数的值组合成一个可访问较大物理空间的内存地址。
CPU内部的段寄存器:
CS——代码段寄存器(Code Segment Register),其值为代码段的段值;
DS——数据段寄存器(Data Segment Register),其值为数据段的段值;
ES——附加段寄存器(Extra Segment Register),其值为附加数据段的段值;
SS——堆栈段寄存器(Stack Segment Register),其值为堆栈段的段值;
FS——附加段寄存器(Extra Segment Register),其值为附加数据段的段值;
GS——附加段寄存器(Extra Segment Register),其值为附加数据段的段值。
参考:
http://blog.chinaunix.net/uid-27717694-id-3943419.html
Intel IA-32 架构软件开发人员手册:
http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html
李迟2016.2.16 晚
Intel X86 CPU寄存器学习笔记相关推荐
- arm linux cpu优化,ARM CPU与Intel x86 CPU性能比较
原标题:ARM CPU与Intel x86 CPU性能比较 随着移动互联网时代的到来,Qualcomm(高通).Texas Instruments(德州仪器)等基于 架构的 受到越来越多人的关注,而昔 ...
- 《Linux性能优化实战》—倪朋飞,CPU部分学习笔记
图片来自极客时间,如有版权问题,请联系我删除. 扫码加入学习! 平均负载 top或uptime命令 load average: 0.63, 0.83, 0.88 指的是系统可运行状态和不可中断状态的进 ...
- CortexM3与M4寄存器学习笔记
寄存器学习 CortexM3和M4处理器的寄存器组中有16个寄存器,其中13个为32位通用目的寄存器,其它3个有特殊用途,如下图所示. 1.R0~R12 寄存器R0-R12为通用目的寄存器,前8个(R ...
- Intel X86 CPU系列的寄存器
一.32位CPU系统级寄存器和数据结构 二.寄存器分类介绍 通用寄存器:8个,分别为EAX,EBX,ECX,EDX,ESP,EBP,ESI,EDI 标志寄存器:1个,EFLAGS 控制寄存器:5个,分 ...
- Marie.js CPU仿真器学习笔记仿真器简单教程
传送门: ① Marie ② 使用手册 0.内容声明 本文章内容源于Marie.js使用手册,代码摘自Marie.js的样例代码,若有错误,敬请斧正. 1.Marie.js简介 这是一个非常精简易用的 ...
- Intel SGX Developer Reference 学习笔记(五)
在这之前,一直想学习关于SGX实操性的.应用相关的内容,我浏览了相关资料,总觉得跟不上那些作者的脚步,学到的都是些零零碎碎的知识,收获都不是很大,一边阅读还在一边质疑资料的可读性,所以我决定返朴归真 ...
- Intel X86 CPU之特权级别
Intel的X86处理器具有四个特权级别,分别是RING0.RING1.RING2.RING3,RING0层拥有最高权限,依此向下RING3层即拥有最低的权限. 应用程序工作在RING3层,就只能访问 ...
- 通过TSS软件栈使用TPM——获取并改变TPM寄存器-学习笔记1
实验使用TPM_Emulator代替TPM硬件,原理是一样的.(学习网站:http://blog.csdn.net/buaa_shang/article/details/26157253) 1.登录系 ...
- 8086寄存器学习笔记-SS 寄存器和 SP 寄存器
SS 寄存器和 SP 寄存器: SS 寄存器:Stack Segment (堆栈段寄存器) SP 寄存器:Stack Pointer(堆栈指针寄存器) 这两个寄存起是为了访问内存用的,SS为段寄存器, ...
最新文章
- python中的字典推导式_python 字典推导式(经典代码)(22)
- 使用 “vue-cropper“进行图片裁剪
- Mybatis 的Log4j日志输出问题 - 以及有关日志的所有问题
- 一个员工的离职成本有多恐怖!
- 世界第一编程语言是Python「为什么那么火?」
- Spring IOC核心原理分析
- postgressql数据库给模式添加search_path
- mysql自动备份 linux_Linux下MySQL数据库自动定时备份
- mysql sql时间比较_mysql和sql时间 字段比较大小的问题
- linux自动化作业安排工具cron anacron at batch (2)
- mysql界面导出数据库有乱码_导出的MYSQL数据库是乱码还可以变回中文吗
- 消息模板取数据的高阶使用说明
- C#中的IntPtr
- 微信小程序超市购物+后台管理系统|前后分离VUE
- win7电脑怎么提升开机速度
- Linux设备模型分析之bus
- c++实现maxpooling+利用OpenMP、SIMD优化代码
- 手机端上传照片实现 压缩、拖放、缩放、裁剪、合成拼图等功能
- random.uniform()和random.random()区别
- 把PotPlayer设为默认视频播放器
热门文章
- 从2元钱到年赚20亿元的传奇经历!相信对你一定会有很大的启发!
- 国产游戏版号时隔8个月重启 游戏公司董事长喜极而泣
- 雷军再失猛将!小米12号创始员工离职 曾一起喝粥创立小米
- 腾讯回应租号打游戏:已向超20家账号交易平台发函
- 7月用户对快递服务问题申诉24978件 同比增长50.1%
- 华为Mate 40E预约页面突然上线:或搭载麒麟990E芯片
- 罗永浩直播间被问“这胖子是谁”,本人看到后崩溃
- 格力宣布11月11日一天让利7亿元 全场空调最高降3900元
- 唏嘘!知名音乐站再传倒闭:官网、App挂掉,“留下了时代的眼泪...”
- 腾讯QQ PC版9.1.7正式版上线 有些“老”功能越来越好用了