CPU的寄存器功能是干什么的?不能用其它的硬件代替吗?实现这个功能的物理原理是什么?
发布网友
发布时间:2023-07-22 02:38
我来回答
共3个回答
热心网友
时间:2023-09-11 20:12
CPU各寄存器的作用 - [Asm]
寄存器作用:
ebp和esp是32位的SP,BP
esp是堆栈指针
ebp是基址指针
ESP与SP的关系就象AX与AL,AH的关系.
32位CPU所含有的寄存器有:
4个数据寄存器(EAX、EBX、ECX和EDX)
2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)
6个段寄存器(ES、CS、SS、DS、FS和GS)
1个指令指针寄存器(EIP) 1个标志寄存器(EFlags)
寄存器AX和AL通常称为累加器(Accumulator),用累加器进行的操作可能需要更少时间。累加器可用于乘、除、输入/输出等操作,它们的使用频率很高;
寄存器BX称为基地址寄存器(Base Register)。它可作为存储器指针来使用;
寄存器CX称为计数寄存器(Count Register)。在循环和字符串操作时,要用它来控制循环次数;在位操作中,当移多位时,要用CL来指明移位的位数;
寄存器DX称为数据寄存器(Data Register)。在进行乘、除运算时,它可作为默认的操作数参与运算,也可用于存放I/O的端口地址。
寄存器ESI、EDI、SI和DI称为变址寄存器(Index Register),它们主要用于存放存储单元在段内的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。
变址寄存器不可分割成8位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。
它们可作一般的存储器指针使用。在字符串操作指令的执行过程中,对它们有特定的要求,而且还具有特殊的功能。
寄存器EBP、ESP、BP和SP称为指针寄存器(Pointer Register),主要用于存放堆栈内存储单元的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。
指针寄存器不可分割成8位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。
它们主要用于访问堆栈内的存储单元,并且规定:
BP为基指针(Base Pointer)寄存器,用它可直接存取堆栈中的数据;
SP为堆栈指针(Stack Pointer)寄存器,用它只可访问栈顶。
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),其值为附加数据段的段值
不能替换
热心网友
时间:2023-09-11 20:12
利用2进制存储,1存0没有。
寄存器看你的系统,32位系统就是32位,64位系统就是64位。
寄存器存在是为了让你电脑运行的更快,电脑里存数据有寄存器,缓存,内存和硬件。按顺序调用的越慢。前3个断电数据丢失,硬件不丢失。
cpu直接问寄存器要数据,寄存器问缓存拿,缓存像内存要。为什么不直接用寄存器,贵。
而且你不是专业的用不到那么快的转换速率
热心网友
时间:2023-09-11 20:13
寄存器就是暂时存储用来的, 如果用其他的 话 不行 速度达不到 运行会很慢, 寄存原理 就跟 内存一样,只要掉电就丢失了,CPU的寄存在 速度非常快 ,而且 价格贵