IntelX86CPU系列的寄存器

合集下载

汇编语言基于x86处理器

汇编语言基于x86处理器

汇编语言基于x86处理器
汇编语言是一种低级编程语言,用于与计算机硬件直接交互。

基于x86处理器的汇编语言主要用于编写针对x86架构的计算机程序。

x86处理器是一种广泛使用的处理器架构,包括Intel和AMD 等厂商生产的多个处理器系列。

在x86汇编语言中,程序员使用特定的指令集来操作寄存器、内存和其他硬件设备,实现计算机指令的精确控制和数据处理。

以下是一些基于x86处理器的汇编语言的特点和要点:
寄存器:x86处理器提供了多个通用寄存器,如AX、BX、CX、DX等,以及专用寄存器如指令指针寄存器IP、堆栈指针寄存器SP等。

程序员可以使用这些寄存器来存储数据、进行计算和操作。

指令集:x86汇编语言提供了广泛的指令集,包括数据传输、算术运算、逻辑运算、条件分支、循环控制等。

程序员可以使用这些指令来实现各种操作和算法。

内存访问:x86汇编语言可以直接访问内存,读取和写入数据。

程序员需要了解内存地址和数据类型的操作方式,以正确地操作内存中的数据。

栈操作:x86汇编语言中的栈用于存储局部变量、函数调用和
返回地址等信息。

程序员可以使用栈指针寄存器来管理栈,并使用相关指令进行入栈和出栈操作。

中断处理:x86处理器支持中断和异常处理机制。

程序员可以编写中断处理程序,以响应硬件中断或软件触发的异常情况。

编写基于x86处理器的汇编语言程序需要对x86架构的指令集和寄存器使用有深入的理解,以及对计算机硬件和操作系统的了解。

熟练掌握汇编语言的编写技巧和调试工具对于开发和调优x86汇编语言程序非常重要。

X32,X64,X86是什么意思

X32,X64,X86是什么意思

目前AMD方面支持64位技术的CPU有Athlon 64系列、Athlon FX系列和Opteron系列。Intel方面支持64位技术的CPU有使用Nocona核心的Xeon系列、使用Prescott 2M核心的Pentium 4 6系列和使用Prescott 2M核心的P4 EE系列。
目前主流CPU使用的64位技术主要有AMD公司的AMD64位技术、Intel公司的EM64T技术、和Intel公司的IA-64技术。其中IA-64是Intel独立开发,不兼容现在的传统的32位计算机,仅用于Itanium(安腾)以及后续产品Itanium 2,一般用户不会涉及到,因此这里仅对AMD64位技术和Intel的EM64T技术做一下简单介绍。
这里的64位技术是相对于32位而言的,这个位数指的是CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为64位,64位指令集就是运行64位数据的指令,也就是说处理器一次可以运行64bit数据。64bit处理器并非现在才有的,在高端的RISC(Reduced Instruction Set Computing,精简指令集计算机)很早就有64bit处理器了,比如SUN公司的UltraSparc Ⅲ、IBM公司的POWER5、HP公司的Alpha等。
ቤተ መጻሕፍቲ ባይዱ
AMD64位技术
AMD64的位技术是在原始32位X86指令集的基础上加入了X86-64扩展64位X86指令集,使这款芯片在硬件上兼容原来的32位X86软件,并同时支持X86-64的扩展64位计算,使得这款芯片成为真正的64位X86芯片。这是一个真正的64位的标准,X86-64具有64位的寻址能力。
X86-64新增的几组CPU寄存器将提供更快的执行效率。寄存器是CPU内部用来创建和储存CPU运算结果和其它运算结果的地方。标准的32-bit x86架构包括8个通用寄存器(GPR),AMD在X86-64中又增加了8组(R8-R9),将寄存器的数目提高到了16组。X86-64寄存器默认位64-bit。还增加了8组128-bit XMM寄存器(也叫SSE寄存器,XMM8-XMM15),将能给单指令多数据流技术(SIMD)运算提供更多的空间,这些128位的寄存器将提供在矢量和标量计算模式下进行128位双精度处理,为3D建模、矢量分析和虚拟现实的实现提供了硬件基础。通过提供了更多的寄存器,按照X86-64标准生产的CPU可以更有效的处理数据,可以在一个时钟周期中传输更多的信息。

Pentium微处理器内部寄存器

Pentium微处理器内部寄存器

Pentium微处理器的内部寄存器Pentium是Intel公司于1993年3月推出的第五代80X86系列微处理器,简称P5或80586,中文译名为“奔腾”。

与其前辈80X86微处理器相比,Pentium采用了全新的设计,它有64位数据线和32位地址线,但依然保持了与其前辈80X86的兼容性,在相同的工作方式上可以执行所有的80X86程序。

Pentium的内部结构如图2.4所示。

它主要由执行单元、指令Cache、数据Cache、指令预取单元、指令译码单元、地址转换与管理单元、总线单元以及控制器等部件组成。

其中核心是执行单元(又叫运算器),它的任务是高速完成各种算术和逻辑运算,其内部包括两个整数算术逻辑运算单元(ALU)和一个浮点运算器,分别用来执行整数和实数的各种运算。

为了提高效率,它们都集成了几十个数据寄存器用来临时存放一些中间结果。

这些功能部件除地址转换和管理单元与80386/80486保持兼容外,其他都进行了重新设计。

1) 超标量体系结构和指令流水线Pentium由“U”和“V”两条指令流水线构成超标量流水线结构,其中每条流水线都有自己的ALU、地址生成逻辑和Cache接口。

这种双流水线技术可以使两条指令在不同流水线中并行执行。

图2.4 Pentium微处理器的内部结构每条流水线又分为指令预取PF、指令译码(一次译码)D1、地址生成(二次译码)D2、指令执行EX和回写WB共5个步骤。

图2.5给出了Pentium的指令流水线操作示意。

图2.5 Pentium指令流水线操作示意图当第一条指令完成指令预取,进入第二个操作步骤D1,执行指令译码操作时,流水线就可以开始预取第二条指令;当第一条指令进入第三个步骤D2,执行地址生成时,第二条指令进入第二个步骤D1,开始指令译码,流水线又开始预取第三条指令;当第一条指令进入第四个步骤EX,执行指令规定的操作时,第二条指令进入第三个步骤D2,执行地址生成,第三条指令进入第二个步骤D1,开始指令译码,流水线又开始预取第四条指令;当第一条指令进入第五个步骤WB,执行回写操作时,第二条指令进入第四个步骤EX,执行指令规定的操作,第三条指令进入第三个步骤D2,执行地址生成,第四条指令进入第二个步骤D1,开始指令译码,流水线又开始预取第五条指令。

X86机的原理构造及技术详解

X86机的原理构造及技术详解

X86机的原理构造及技术详解X86架构是计算机体系结构的一种,广泛应用于个人电脑和服务器领域。

它包含了一系列的指令集和硬件设计,为计算机的运行提供了基本框架。

下面将详细解析X86机的原理构造及技术。

1.指令集:X86的指令集是其最重要的特征之一、它包括基本的算术运算、逻辑运算、数据传输等指令,并提供了各种操作数的寻址方式。

X86提供了多种寻址方式,例如寄存器寻址、立即数寻址、直接寻址、间接寻址等。

这些指令和寻址方式的组合可以满足各种计算需求。

2.处理器架构:X86处理器架构通常由运算单元、控制单元、寄存器、数据通路、总线等组成。

运算单元负责执行指令中的算术和逻辑运算,控制单元负责指令的解码和控制流程的管理,寄存器用于存储数据和地址,数据通路用于连接各个功能模块,总线用于传输数据和控制信号。

3.寄存器:X86处理器拥有多个寄存器,包括通用寄存器、控制寄存器、段寄存器等。

通用寄存器用于存储一般性数据,控制寄存器用于存储控制信息,段寄存器用于存储段选择子,以实现分段机制。

通用寄存器的个数和位数因处理器型号不同而有所差异。

4.数据通路:X86处理器的数据通路通常包括运算器、存储器和数据寄存器。

运算器用于执行算术和逻辑运算,存储器用于存储指令和数据,数据寄存器用于暂存数据。

数据通路可以根据指令中的操作数和寻址方式进行数据的读取和写入。

5.缓存:X86处理器通常会配置多级缓存,以提高数据访问速度。

缓存分为指令缓存和数据缓存,它们分别用于存储指令和数据,减少访问主存的时间。

缓存的大小和结构会因处理器型号而有所不同,更高级别的缓存一般会更大,但也更贵和更慢。

6.执行流程:X86处理器的执行流程通常包括取指令、解码、执行、访存和写回等阶段。

取指令阶段从存储器中获取指令,解码阶段将指令转换为可执行的微操作序列,执行阶段根据微操作序列执行计算和数据操作,访存阶段读取或写入数据,写回阶段将结果写回到相应的寄存器或存储器。

x86是多少位

x86是多少位

x86是多少位x86,亦称为x86架构或x86体系结构,是一种32位和64位微处理器架构。

它是Intel于1978年首次引入的一种基于CISC (Complex Instruction Set Computer,复杂指令集计算机)的处理器架构。

自那时以来,x86架构已经成为市场上最为广泛使用的计算机架构之一。

x86架构的第一个处理器是Intel 8086,它是一款16位处理器。

然而,由于对内存限制的需求以及市场的发展,Intel随后推出了Intel 80286(i286)处理器,后者是一款32位处理器,向后兼容8086指令集。

这是x86架构的第一个32位处理器,为今后的发展奠定了基础。

随着计算机技术的进步和市场需求的推动,x86架构建立了其领导地位。

Intel在后续的产品中引入了更先进的处理器,如80386(i386),80486(i486)和Pentium系列,将x86架构推向新的高度。

这些处理器通过增加处理器位宽度并改进指令集来提高计算能力和效率。

虽然32位x86架构在市场上非常成功,但随着技术的进步,对更高计算能力和内存访问的需求也越来越迫切。

为了应对这一需求,x86架构进一步演变为64位架构。

Intel在2003年推出了第一款x86 64位处理器,称为Intel Itanium。

紧接着,Intel又发布了x86架构的64位版本,称为Intel EM64T。

AMD还引入了自己的64位架构,称为AMD64或x86-64。

这些64位处理器不仅可以兼容运行32位操作系统和应用程序,还可以运行64位操作系统和应用程序,提供更高的内存寻址能力。

x86架构的位数指的是处理器的寻址能力和寄存器的位宽度。

在32位x86架构中,处理器能够寻址32位内存地址,这意味着它最多可以寻址2^32(大约4GB)的内存。

而在64位x86架构中,处理器能够寻址64位内存地址,最多可以寻址2^64(约16EB)的内存,实现了更高的内存寻址能力。

X86架构的寄存器

X86架构的寄存器

X86架构的寄存器
在调试过程中,如果要看寄存器的内容的话,需要使⽤到的寄存器还是需要熟悉⼀下的。

32位下的x86_32
2个变址寄存器:ESI、EDI
6个段寄存器:ES、CS、SS、DS、FS、GS
4个数据寄存器:EAX、EBX、ECX、EDX
esp:寄存器存放当前线程的栈顶指针
ebp:寄存器存放当前线程的栈底指针
eip:指令寄存器,下⼀条指令的地址
4个传参使⽤到的寄存器,依次为:EDI、ESI、EDX、ECX。

EAX寄存器作函数返回值。

64位下的x64
64位下有16个寄存器:rax、rbx、rcx、rdx、esi、edi、rbp、rsp、r8、r9、r10、r11、r12、r13、r14、r15。

6个传参寄存器:依次为:rdi、rsi、rdx、rcx、r8、r9
其它
X86下,遵循被调⽤者使⽤规则,函数在调⽤⼦函数之前,保存相关寄存器的内容。

函数调⽤时,参数先⼊栈,接着为返回地址⼊栈,BP寄存器⼊栈、再接着就是⼦函数的局部变量之类的了。

x86设计手册

x86设计手册

x86设计手册x86 (也称为IA-32)是一种广泛使用的计算机指令集架构,许多个人计算机和服务器采用这一架构。

x86架构最早由英特尔公司在20世纪70年代开发,并于1981年首次公开发布。

x86架构的设计手册是一本重要的参考资料,使用简体中文编写的手册主要用于指导开发者理解和编写x86架构的程序。

手册详细介绍了x86架构的核心概念、指令集、寄存器、内存管理等关键内容。

首先,x86架构手册解释了指令集的组成和功能。

指令集是计算机硬件能够理解和执行的操作码,它包含了各种算术、逻辑和控制指令。

手册列出了所有的指令集,并提供每个指令的详细描述,包括操作数的格式、指令的功能以及指令的执行方式和效果。

其次,手册介绍了x86架构中的寄存器。

寄存器是一种小型的高速存储器,用于存储和操作计算机中的数据。

x86架构采用了多种不同类型的寄存器,如通用寄存器、段寄存器和控制寄存器。

手册详细描述了每个寄存器的作用和用法,以及如何在程序中使用这些寄存器来实现各种功能。

此外,x86架构手册还解释了内存管理的相关概念。

内存管理是计算机系统中非常重要的一部分,它涉及到内存的分配、访问和释放。

手册讨论了x86架构中的内存地址空间、内存保护和分段机制,并介绍了如何使用指令来读取和写入内存中的数据。

最后,x86设计手册还包含了大量的参考资料和示例代码,供开发者参考和学习。

这些资料包括x86架构的编程指导、程序调试技巧和性能优化建议等内容。

开发者可以通过研读这些资料,更好地理解和应用x86架构。

总体而言,x86设计手册是一本重要的参考资料,它为开发者提供了详尽的关于x86架构的知识。

无论是研究x86架构的原理,还是进行x86程序的开发和调试,这本手册都能够提供有价值的指导和支持。

随着计算机技术的不断发展,x86架构手册的更新版本也在不断发布,以适应新的硬件和软件环境。

综上所述,x86设计手册是一本重要的计算机技术书籍,对于理解和应用x86架构至关重要。

单片机或者cpu是多少位的,指的是地址总线还是数据总线(比如32位和64位的cpu)

单片机或者cpu是多少位的,指的是地址总线还是数据总线(比如32位和64位的cpu)

单⽚机或者cpu是多少位的,指的是地址总线还是数据总线(⽐如32位和64位的cpu)⼀般来说,CPU的位宽指的是数据总线的宽度。

这个你可以这么推想:CPU的地址总线宽度决定了寻址范围,数据总线决定了单次能取出的数据的长度。

决定CPU的性能的话,数据总线和地址总线谁更能决定这个性能呢?当然是数据总线嘛,你64位数据总线⼀次就能取出64bit的数据,8位数据总线的CPU⼀次只能取出8bit的数据,在相同频率的情况下,8位数据总线的CPU就得连续取8次数据,数据量才能和64位数据总线⼀次取出的数据量相同,是不是性能差8倍呢。

这⾥还不关⼼取到数据后处理数据的性能问题,但就说取数据的性能问题,就差8倍。

地址总线宽度不是直接影响到性能的参数。

给个例⼦:假如说有个36位地址总线宽度、32位数据总线宽度的A型号的CPU,假如还有个32位地址总线宽度、32位数据总线宽度的B型号的CPU。

你觉得这两个型号的CPU性能上能差到哪吗?只不过B型号的CPU地址超过了32位可能就不⾏能,也可能需要⽤其他的⽅式组合出更长位宽的地址来,总之不如A型号直接、⾼效。

但是,只要不是这样的情况,A和B的其他因素相同,你觉得A和B两个CPU的性能差到哪吗。

其实,intel的x86CPU就刚好有这样的情况,36位地址总线宽度、32位数据总线宽度,寄存器是32位的,你会想,那寄存器放不下36位的地址,那怎么办呢,其实它是⽤某种⽅法组合出来的36位地址,段地址32位向⾼位偏移4位后加上偏移地址,就出来36位的地址。

⼀般,寄存器的宽度和数据总线宽度是⼀致的,地址总线可以通过某种⽅式组合出来,所以可以不⼀致。

毕竟寄存器绝⼤部分时间是要存储和处理数据的,不是吗,地址作为数据使⽤的情况在整个程序运⾏中占的时间是很少数的。

另外,操作系统的位宽应该指的是编译时使⽤的是32位指令集还是64指令集(这⾥就只说x86体系的吧,IA32和IA64这个⽐较多,其他体系结构的我也不是很清楚。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
OSFXSR:置位.表明操作系统支持FXSAVE and FXRSTOR指令 OSXMMEXCPT:置位.表明操作系统支持不可屏蔽的SIMD浮点异常.
整理ppt
11
寄存器分类介绍(7)
调试寄存器
作用:调试寄存器主要作用是调试应用代码、系统代码、 开发多任务操作系统.来监视代码的运行和处理器的性 能.
该位
EM;该位表明是否需要仿真协处理器的功能
MP:协处理器位,CPU工作在保护模式.反之,实模式.
整理ppt
10
寄存器分类介绍(6)
控制寄存器(CR0, CR1, CR2, CR3, and CR4)
CR3: PCD:控制当前页目录表的缓冲,当设置清空时,缓冲.置位时,缓冲无效.与 CR0中的CD或PG一同使用
掌握系统软件设计
汇编嵌入在C语言中的编写 Boot loader的设计(BSP)
理解Intel CPU的发展趋势 深刻理解平台的体系结构 编写更高质量的代码 编译器底层的优化
整理ppt
3
32位CPU系统级寄存器和数据结构(1)
1
3
4
2
2 3
大家在这张图中,注意寄
存器类别之间的关系.
整理ppt
PWT:控制cache采取直写还是回写的策略.当设置清空时,回写有效.当置位时,直写有 效.
CR4:
VME:虚地址模式.当清空时,无效. PVI:保护模式虚中断,当清空时,无效 TSD:时间戳允许标志位.当清空时,允许RDTSC指令执行在任务特权级上.当置位时,
只允许工作在特权级0. DE:调试扩展.置位,表明DR4与DR5将产生没有定义的异常 PSE:当置位,使用4M的页面;清空,使用4K的页面 PAE:置位,使用36物理内存的分页机制.清空时,使用32位分页机制 MCE:置位,使用机器检查异常机制. PGE:置位,启动全局页面.当写CR3时,也不会被替换. PCE:置位,表明使RDPMC指令工作在任何保护级别.
CD: cache 缺失设置位 NW:直写无效(直写:高速缓存中的数据始终保持与主存储器中数据匹配 ) AM: 对齐功能屏蔽(与EFLAGS寄存器中 AC标志位一同使用) WP:写保护 NE: 数字错误标志位(与浮点协处理器共同使用) ET: 扩展类型.设置有效位时,支持 ntel 387 DX 数学协处理器指令. TS: 每当任务切换时就设置该位,并且在解释协处理器指令之前测试
DR0---DR3:调试地址寄存器 DR4—DR5:保留.还没有定义 DR6: 调试状态寄存器 DR7: 调试控制寄存器
在开发底层系统时,会用到这些寄存器.
整理ppt
12
寄存器分类介绍(8)
调试寄存器
设置标志位 集中在DR7
整理ppt
13
寄存器分类介绍(9)
调试寄存器
DR0-DR3:保留32位断点的线性地址.
种类:
CR0: 控制系统的工作模式和处理器的状态 CR1: 保留 CR2 :保留出错的线性地址 CR3:页目录基址的物理地址和PCD和PWT标志位(和CACHE有关) CR4:一些结构的扩展.表明对于特定的处理器和操作系统执行支持.
由实模式转换到保护模式、二级页面映射机制的建立、中断处理等等,会用到这 些寄存器,.
4
32位CPU系统级寄存器和数据结构(2)
15
0
31
0
逻辑地址
选择符
偏移量
线性地址
描述符表
基地址 段描述符
+
31
22 21
12 11
0
页目录
页表项
页内偏移值
页目录表
页表
页框
CR3
页目录项
页表项
物理地址
逻辑地址 线性地址物理地址转换图
整理ppt
5
寄存器分类介绍(1) -------通用寄存器
AX
BX
置标志位的有效位 看你具体要做什么, 对应的位置置有效的
标志位
Figure : System Flags in the EFLAGS Register
整理ppt
7
寄存器分类介绍(3)
控制寄存器((CR0, CR1, CR2, CR3, and CR4)
作用:控制寄存器决定处理器的操作模式和当前执行任务的一些特 征
整理ppt
8
寄存器分类介绍(4)
控制寄存器(CR0, CR1, CR2, CR3, and CR4)
在这些寄存器中, 设置标志位的主要 集中在CR0与CR4.
整理ppt
9
寄存器分类介绍(5)
控制寄存器(CR0, CR1, CR2, CR3, and CR4)
CR0
PG:分页有效时,置位为1,清空时为0.与PE一同使用.该指令表明是否 使用页表将线性地址转换成物理地址
DR6
B0—B3:断点状态的监测
BD:调试寄存器访问监测.置位,表明在指令流中,下一条指令将访问其中
的一个调试寄存器
BS:单步执行标志位
BT:任务转换标志位
DR7:
L0—L3:局部断点使能标志位
G0--G3: 全局断点使能标志位
LE AND GE:置位,表明处理器可以监测导致数据断点的指令.推荐 置位为1.
GD:通用监测使能标志位.表明是否开启调试寄存器保护.
LEN0 through LEN3 : 用来表明相应断点地址寄存器内存位置的大 小.
R/W0 through R/W3: 相应断点的状态
整理ppt
14
寄存器分类介绍(10) ---中断和异常管理寄存器
中断描述符表(IDT)
系统软件开发指南系列
---Intel X86 CPU系列的寄存器
整理ppt
1
主要内容
学习寄存器知识的意义 32位CPU系统寄存器和数据结构 寄存器分类介绍
通用寄存器 标志寄存器 控制寄存器 调试寄存器 中断和异常管理寄存器 内存管理寄存器
在操作系统上用到的寄存器
整理ppt
2
学习寄存器知识的意义
数据寄存器
CX
DX
SP
堆栈指针
通用寄存器
指针寄存器
BP
基址指针
SI
源地址
变址寄存器
DI
目的地址
如果前面带由大写字母E, 代表32位寄存器
整理ppt
6
寄存器分类介绍(2)
标志寄存器(EFLAGS register) ----only one
作用: 控制任务状态和模式切换、中断处理、指令追踪和访问权限 控制.寄存器中的标志位需要特权指令代码才可以修改(特权指令:运 行在内核态下的代码)
相关文档
最新文档