当前位置:首页 » 服务存储 » 存储体有哪些寄存器
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

存储体有哪些寄存器

发布时间: 2022-07-05 11:47:27

存储器和寄存器分别有哪些

寄存器和存储器的区别有以下几点:

1、存储器功能:存放指令和数据,并能由中央处理器(CPU)直接随机存取。

2、寄存器功能:可将寄存器内的数据执行算术及逻辑运算;存于寄存器内的地址可用来指向内存的某个位置,即寻址;可以用来读写数据到电脑的周边设备。

3、寄存器的速度比主存储器的速度要快很多,由于寄存器的容量有限,所以将不需要操作的数据存放在主存储器中,主存储器中的数据必须放入寄存器材能够进行操作。

4、简单地说:寄存器是操作数据的地方,存储器是存放数据的地方。

5、寄存器结构通常是指基本RS触发器派生D触发器,是由一些与非门的结构、总体集成在CPU、读写速度与CPU的速度运行基本匹配,但由于性能优越,所以贵,一般好的CPU只有几MB二级缓存,一级缓存。

6,CPU的内存,通常指的是硬盘,U盘和其他设备可以节省电源切断后,数据的能力是一般比较大,缺点是读写速度非常缓慢,普通机械硬盘读写速度通常是大约50mb/S。内存和寄存器是用于慢速内存读写的多层存储机制。

② 计算机系统中主要有哪几种寄存器它们的作用分别是什么

计算机寄存器分类简介:

32位CPU所含有的寄存器有:

4个数据寄存器(EAX、EBX、ECX和EDX)

2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)

6个段寄存器(ES、CS、SS、DS、FS和GS)

1个指令指针寄存器(EIP) 1个标志寄存器(EFlags)

1、数据寄存器

数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。

32位CPU有4个32位的通用寄存器EAX、EBX、ECX和EDX。

对低16位数据的存取,不会影响高16位的数据。

这些低16位寄存器分别命名为:AX、BX、CX和DX,它和先前的CPU中的寄存器相一致。

4个16位寄存器又可分割成8个独立的8位寄存器(AX:AH-AL、BX:BH-BL、CX:CH-CL、DX:DH-DL),每个寄存器都有自己的名称,可独立存取。

程序员可利用数据寄存器的这种“可分可合”的特性,灵活地处理字/字节的信息。

寄存器EAX通常称为累加器(Accumulator),用累加器进行的操作可能需要更少时间。可用于乘、 除、输入/输出等操作,使用频率很高;

寄存器EBX称为基地址寄存器(Base Register)。它可作为存储器指针来使用;

寄存器ECX称为计数寄存器(Count Register)。

在循环和字符串操作时,要用它来控制循环次数;在位操作中,当移多位时,要用CL来指明移位的位数;

寄存器EDX称为数据寄存器(Data Register)。在进行乘、除运算时,它可作为默认的操作数参与运算,也可用于存放I/O的端口地址。

在16位CPU中,AX、BX、CX和DX不能作为基址和变址寄存器来存放存储单元的地址,

在32位CPU中,其32位寄存器EAX、EBX、ECX和EDX不仅可传送数据、暂存数据保存算术逻辑运算结果,

而且也可作为指针寄存器,所以,这些32位寄存器更具有通用性。

2、变址寄存器

32位CPU有2个32位通用寄存器ESI和EDI。

其低16位对应先前CPU中的SI和DI,对低16位数据的存取,不影响高16位的数据。

寄存器ESI、EDI、SI和DI称为变址寄存器(Index Register),它们主要用于存放存储单元在段内的偏移量,

用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。

变址寄存器不可分割成8位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。

它们可作一般的存储器指针使用。在字符串操作指令的执行过程中,对它们有特定的要求,而且还具有特殊的功能。

3、指针寄存器

其低16位对应先前CPU中的BP和SP,对低16位数据的存取,不影响高16位的数据。

32位CPU有2个32位通用寄存器EBP和ESP。

它们主要用于访问堆栈内的存储单元,并且规定:

EBP为基指针(Base Pointer)寄存器,用它可直接存取堆栈中的数据;

ESP为堆栈指针(Stack Pointer)寄存器,用它只可访问栈顶。

寄存器EBP、ESP、BP和SP称为指针寄存器(Pointer Register),主要用于存放堆栈内存储单元的偏移量,

用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。

指针寄存器不可分割成8位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。

4、段寄存器

段寄存器是根据内存分段的管理模式而设置的。内存单元的物理地址由段寄存器的值和一个偏移量组合而成

的,这样可用两个较少位数的值组合成一个可访问较大物理空间的内存地址。

CPU内部的段寄存器:

ECS——代码段寄存器(Code Segment Register),其值为代码段的段值;

EDS——数据段寄存器(Data Segment Register),其值为数据段的段值;

EES——附加段寄存器(Extra Segment Register),其值为附加数据段的段值;

ESS——堆栈段寄存器(Stack Segment Register),其值为堆栈段的段值;

EFS——附加段寄存器(Extra Segment Register),其值为附加数据段的段值;

EGS——附加段寄存器(Extra Segment Register),其值为附加数据段的段值。

在16位CPU系统中,它只有4个段寄存器,所以,程序在任何时刻至多有4个正在使用的段可直接访问;在32位

微机系统中,它有6个段寄存器,所以,在此环境下开发的程序最多可同时访问6个段。

32位CPU有两个不同的工作方式:实方式和保护方式。在每种方式下,段寄存器的作用是不同的。有关规定简

单描述如下:

实方式: 前4个段寄存器CS、DS、ES和SS与先前CPU中的所对应的段寄存器的含义完全一致,内存单元的逻辑

地址仍为“段值:偏移量”的形式。为访问某内存段内的数据,必须使用该段寄存器和存储单元的偏移量。

保护方式: 在此方式下,情况要复杂得多,装入段寄存器的不再是段值,而是称为“选择子”(Selector)的某个值。。

5、指令指针寄存器

32位CPU把指令指针扩展到32位,并记作EIP,EIP的低16位与先前CPU中的IP作用相同。

指令指针EIP、IP(Instruction Pointer)是存放下次将要执行的指令在代码段的偏移量。

在具有预取指令功能的系统中,下次要执行的指令通常已被预取到指令队列中,除非发生转移情况。

所以,在理解它们的功能时,不考虑存在指令队列的情况。

6、标志寄存器

一、运算结果标志位

1、进位标志CF(Carry Flag)

进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。

使用该标志位的情况有:多字(字节)数的加减运算,无符号数的大小比较运算,移位操作,字(字节)之间移位,专门改变CF值的指令等。

2、奇偶标志PF(Parity Flag)

奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0。

利用PF可进行奇偶校验检查,或产生奇偶校验位。在数据传送过程中,为了提供传送的可靠性,如果采用奇偶校验的方法,就可使用该标志位。

3、辅助进位标志AF(Auxiliary Carry Flag)

在发生下列情况时,辅助进位标志AF的值被置为1,否则其值为0:

(1)、在字操作时,发生低字节向高字节进位或借位时;

(2)、在字节操作时,发生低4位向高4位进位或借位时。

对以上6个运算结果标志位,在一般编程情况下,标志位CF、ZF、SF和OF的使用频率较高,而标志位PF和AF的使用频率较低。

4、零标志ZF(Zero Flag)

零标志ZF用来反映运算结果是否为0。如果运算结果为0,则其值为1,否则其值为0。在判断运算结果是否为0时,可使用此标志位。

5、符号标志SF(Sign Flag)

符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。在微机系统中,有符号数采用码表示法,所以,SF也就反映运算结果的正负号。运算结果为正数时,SF的值为0,否则其值为1。

6、溢出标志OF(Overflow Flag)

溢出标志OF用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0。

“溢出”和“进位”是两个不同含义的概念,不要混淆。如果不太清楚的话,请查阅《计算机组成原理》课程中的有关章节。

二、状态控制标志位

状态控制标志位是用来控制CPU操作的,它们要通过专门的指令才能使之发生改变。

1、追踪标志TF(Trap Flag)

当追踪标志TF被置为1时,CPU进入单步执行方式,即每执行一条指令,产生一个单步中断请求。这种方式主要用于程序的调试。

指令系统中没有专门的指令来改变标志位TF的值,但程序员可用其它办法来改变其值。

2、中断允许标志IF(Interrupt-enable Flag)

中断允许标志IF是用来决定CPU是否响应CPU外部的可屏蔽中断发出的中断请求。

但不管该标志为何值,CPU都必须响应CPU外部的不可屏蔽中断所发出的中断请求,以及CPU内部产生的中断请求。

具体规定如下:

(1)、当IF=1时,CPU可以响应CPU外部的可屏蔽中断发出的中断请求;

(2)、当IF=0时,CPU不响应CPU外部的可屏蔽中断发出的中断请求。

CPU的指令系统中也有专门的指令来改变标志位IF的值。

3、方向标志DF(Direction Flag)

方向标志DF用来决定在串操作指令执行时有关指针寄存器发生调整的方向。具体规定在第5.2.11节——字符串操作指令——中给出。

在微机的指令系统中,还提供了专门的指令来改变标志位DF的值。

三、32位标志寄存器增加的标志位

1、I/O特权标志IOPL(I/O Privilege Level)

I/O特权标志用两位二进制位来表示,也称为I/O特权级字段。该字段指定了要求执行I/O指令的特权级。

如果当前的特权级别在数值上小于等于IOPL的值,那么,该I/O指令可执行,否则将发生一个保护异常。

2、嵌套任务标志NT(Nested Task)

嵌套任务标志NT用来控制中断返回指令IRET的执行。具体规定如下:

(1)、当NT=0,用堆栈中保存的值恢复EFLAGS、CS和EIP,执行常规的中断返回操作;

(2)、当NT=1,通过任务转换实现中断返回。

3、重启动标志RF(Restart Flag)

重启动标志RF用来控制是否接受调试故障。规定:RF=0时,表示“接受”调试故障,否则拒绝之。

在成功执行完一条指令后,处理机把RF置为0,当接受到一个非调试故障时,处理机就把它置为1。

4、虚拟8086方式标志VM(Virtual 8086 Mode)

如果该标志的值为1,则表示处理机处于虚拟的8086方式下的工作状态,否则,处理机处于一般保护方式下的工作状态。

③ 通用寄存器有哪些

1、数据寄存器

数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。

2、变址寄存器

32位CPU有2个32位通用寄存器ESI和EDI。其低16位对应先前CPU中的SI和DI,对低16位数据的存取,不影响高16位的数据。

3、指针寄存器

32位CPU有2个32位通用寄存器EBP和ESP。其低16位对应先前CPU中的SBP和SP,对低16位数据的存取,不影响高16位的数据。

4、段寄存器

段寄存器是根据内存分段的管理模式而设置的。内存单元的物理地址由段寄存器的值和一个偏移量组合而成的,这样可用两个较少位数的值组合成一个可访问较大物理空间的内存地址。

5、指令指针寄存器

32位CPU把指令指针扩展到32位,并记作EIP,EIP的低16位与先前CPU中的IP作用相同。 指令指针EIP、IP(Instruction Pointer)是存放下次将要执行的指令在代码段的偏移量。

(3)存储体有哪些寄存器扩展阅读

寄存器是CPU内部重要的数据存储资源,用来暂存数据和地址,是汇编程序员能直接使用的硬件资源之一。由于寄存器的存取速度比内存快,所以,在用汇编语言编写程序时,要尽可能充分利用寄存器的存储功能。

寄存器一般用来保存程序的中间结果,为随后的指令快速提供操作数,从而避免把中间结果存入内存,再读取内存的操作。在高级语言(如:C/C++语言)中,也有定义变量为寄存器类型的,这就是提高寄存器利用率的一种可行的方法。

另外,由于寄存器的个数和容量都有限,不可能把所有中间结果都存储在寄存器中,所以,要对寄存器进行适当的调度。根据指令的要求,如何安排适当的寄存器,避免操作数过多的传送操作是一项细致而又周密的工作。

参考资料来源:网络-通用寄存器

④ 主存除了存储体外还应有什么寄存器

主存除了存储体外还应有内部寄存器
随机存取存储器(RAM)也叫主存,与CPU直接交换数据的内部存储器,是一种非常快速的计算机内存,可以暂时存储您的PC需要的所有信息,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。
RAM是一种非常快速的计算机内存,可以暂时存储您的PC需要的所有信息。这是你的计算机加载所有它认为需要很快找到的东西的地方,所以当它发生时,它可以以极快的速度读取它。它与您的系统存储非常不同,例如硬盘,信息长期存储。
也许对于RAM来说,最好的比喻就是将它想象为系统的短期记忆。学习新东西很快,可以加载关于您的网络浏览器,您正在使用的图像编辑工具或您正在玩的游戏的所有信息,以便您可以快速访问它。您不想在每次打开新选项卡时装载较慢的存储设备,例如硬盘驱动器或固态驱动器(SSD),或装入新的敌人进行拍摄。与存储的年数相比,它们的速度与RAM相比要低得多。短期内存或RAM中的数据可以以几乎相同的速度从任何位置读取,并且因为它与系统具有硬连线连接,所以在布线或连接时没有实际的延迟。

⑤ CPU中保存当前正在执行的指令地址的是什么寄存器

高速缓冲存储器(Cache)

Cache也是经常遇到的概念,也就是平常看到的一级缓存(L1 Cache)、二级缓存(L2 Cache)、三级缓存(L3 Cache)这些数据,它位于CPU与内存之间,是一个读写速度比内存更快的存储器。当CPU向内存中写入或读出数据时,这个数据也被存储进高速缓冲存储器中。

当CPU再次需要这些数据时,CPU就从高速缓冲存储器读取数据,而不是访问较慢的内存,当然,如需要的数据在Cache中没有,CPU会再去读取内存中的数据。

(5)存储体有哪些寄存器扩展阅读

组成结构——

高速缓冲存储器是存在于主存与CPU之间的一级存储器, 由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多, 接近于CPU的速度。

主要由三大部分组成:

Cache存储体:存放由主存调入的指令与数据块。

地址转换部件:建立目录表以实现主存地址到缓存地址的转换。

替换部件:在缓存已满时按一定策略进行数据块替换,并修改地址转换部件。

⑥ 存储系统有哪些组成部分

存储器是由存储体、地址寄存器、地址译码驱动电路、读/写控制逻辑、数据寄存器、读/写驱动器等六个部分组成

存储体是存储器的核心,是存储单元的集合体
地址寄存器用于存放CPU访问存储单元的地址,经译码驱动后指向相应的存储单元。
译码器将地址总线输入的地址码转换成与其对应的译码输出线上的高电平或低电平信号,以表示选中了某一单元,并由驱动器提供驱动电流去驱动相应的读/写电路,完成对被选中单元的读/写操作。
读/写驱动器用以完成对被选中单元中各位的读/写操作,包括读出放大器、写入电路和读/写控制电路。
数据寄存器用于暂时存放从存储单元读出的数据,或从CPU输出I/O端口输入的要写入存储器的数据。
读/写控制逻辑接收来自CPU的启动、片选、读/写及清除命令,经控制电路综合处理后,发出一组时序信号来控制存储器的读/写操作

⑦ 寄存器的分类

eax, ebx, ecx, edx, esi, edi, ebp, esp等都是X86 汇编语言中CPU上的通用寄存器的名称,是32位的寄存器。如果用C语言来解释,可以把这些寄存器当作变量看待。

比方说:add eax,-2 ; //可以认为是给变量eax加上-2这样的一个值。

这些32位寄存器有多种用途,但每一个都有各自的特别之处。

EAX:累加寄存器,相对于其他寄存器,在运算方面比较常用。

EBX:基地址寄存器,作为内存偏移指针使用。

ECX:计数器,用于特定的技术。

EDX:作为EAX的溢出寄存器,(除法产生的余数)。

EIP:存储CPU下次所执行的指令地址(存放指令偏移地址)。

ESP:指针的寄存器,用于堆栈操作。被形象地称为栈顶指针,堆栈的顶部是地址小的区域,压入堆栈的数据越多,ESP也就越来越小。在32位平台上,ESP每次减少4字节。

EBP:基址指针,指栈的栈底指针。

它最经常被用作高级语言函数调用的"框架指针"(frame pointer). 在破解的时候,经常可以看见一个标准的函数起始代码:

push ebp ;保存当前ebp
mov ebp,esp ;EBP设为当前堆栈指针
sub esp, xxx ;预留xxx字节给函数临时变量.
...

这样一来,EBP 构成了该函数的一个框架, 在EBP上方分别是原来的EBP, 返回地址和参数. EBP下方则是临时变量. 函数返回时作 mov esp,ebp/pop ebp/ret 即可.

ESI:在内存操作指令中作为“源地址指针”使用。

EDI:在内存操作指令中作为“目的地址”使用。

MOV:将源操作数送至目的操作数。

PUSH:入栈指令,将源操作数指定的字数据压入堆栈栈顶。

POP:出栈操作,将源操作数指定的字数据压入堆栈栈顶。

JMP:跳转至指定地址执行。

LEA:取有效地址(偏移地址)至寄存器。

CALL:将程序的执行交给其他代码段。

RET:子程序的返回指令。

⑧ 存储器由哪几部分组成,如何使用

存储器由存储体、地址译码器和控制电路组成。


1)存储体是存储数据信息的载体。由一系列存储单元组成,每个存储单元都有确定的地址。存储单元通常按字节编址,一个存储单元为一个字节,每个字节能存放一个8位二进制数。就像一个大仓库,分成许多房间,大仓库相当于存储体,房间相当于字节,房间都有编号,编号就是地址。

2)地址译码器将CPU发出的地址信号转换为对存储体中某一存储单元的选通信号。相当于CPU给出地址,地址译码器找出相应地址房间的钥匙。通常地址是8位或1 6位,输入到地址译码器,产生相应的选通线,8位地址能产生28=256根选通线,即能选通256字节。16位地址能产生216=65536=64K根选通线,即能选通64K字节。当然要产生65536根选通线是很难想象的,实际上它是分成256根行线和256根列线,256 X 256=65536,合起来能选通65536个存储单元。

3)存储器控制电路包括片选控制、读/写控制和带三态门的输入/输出缓冲电路。

①片选控制确定存储器芯片是否工作。

②读/写控制确定数据传输方向;若是读指令,则将已被选通的存储单元中的内容传送到数据总线上;若是写指令,则将数据总线上的数据传送到已被选通的存储单元中。

③带三态门的输入/输出缓冲电路用于数据缓冲和防止总线上数据竞争。数据总线相当于一条车流频繁的大马路,必须在绿灯条件下,车辆才能进入这条大马路,否则要撞车发生交通事故。同理,存储器的输出端是连接在数据总线上的,存储器中的数据是不能随意传送到数据总线上的。例如,若数据总线上的数据是“1”(高电平5V),存储器中的数据是“0”(低电平OV),两种数据若碰到一起就会发生短路而损坏单片机。因此,存储器输出端口不仅能呈现“1”和“O”两种状态,还应具有第三种状态“高阻"态。呈“高阻"态时,它们的输出端口相当于断开,对数据总线不起作用,此时数据总线可被其他器件占用。当其他器件呈“高阻"态时,存储器在片选允许和输出允许的条件下,才能将自己的数据输出到数据总线上。

单片机学习需要理论结合实际,最好有自己的单片机开发板辅助,看视频教程,目前主流的有吴鉴鹰单片机开发板

⑨ 存储系统有哪些组成部分

存储系统知识
存储系统由硬件系统(磁盘阵列,控制器,磁盘柜,磁带库等)、存储软件(备份软件;管理软件,快照,复制等增值软件)、存储网络(HBA卡,光纤交换机,FC/SAS线缆等)和存储解决方案(集中存储,归档,备份,容灾等)组成。

⑩ 计算机中常用的寄存器有哪些

数据寄存器
-
用来储存整数数字(参考以下的浮点寄存器)。在某些简单/旧的
CPU,特别的数据寄存器是累加器,作为数学计算之用。
地址寄存器
-
持有存储器地址,以及用来访问存储器。在某些简单/旧的CPU里,特别的地址寄存器是索引寄存器(可能出现一个或多个)。
通用目的寄存器
(GPRs)
-
可以保存数据或地址两者,也就是说他们是结合
数据/地址
寄存器的功用。
浮点寄存器
(FPRs)
-
用来储存浮点数字。
常数寄存器
-
用来持有只读的数值(例如
0、1、圆周率等等)。
向量寄存器
-
用来储存由向量处理器运行SIMD(Single
Instruction,
Multiple
Data)指令所得到的数据。
特殊目的寄存器
-
储存CPU内部的数据,像是程序计数器(或称为指令指针),堆栈寄存器,以及状态寄存器(或称微处理器状态字组)。
指令寄存器(instruction
register)
-
储存现在正在被运行的指令
索引寄存器(index
register)
-
是在程序运行实用来更改运算对象地址之用。
在某些架构下,模式指示寄存器(也称为“机器指示寄存器”)储存和设置跟处理器自己有关的数据。由于他们的意图目的是附加到特定处理器的设计,因此他们并不被预期会成微处理器世代之间保留的标准。
有关从
随机存取存储器
提取信息的寄存器与CPU(位于不同芯片的储存寄存器集合)
存储器缓冲寄存器(Memory
buffer
register)
存储器数据寄存器(Memory
data
register)
存储器地址寄存器(Memory
address
register)
存储器型态范围寄存器(Memory
Type
Range
Registers)
很多,讲不完的