我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:藏宝阁 > 地址寄存器 >

CPU中哪个寄存器总是用于存储地址?这个寄存器中存储的是什么地

归档日期:05-31       文本归类:地址寄存器      文章编辑:爱尚语录

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  我说8086的吧,32位比较复杂。我认为理论上来说应该只有cs和ip,也就是与执行指令相关的这两个寄存器,总是存储的下一条指令的地址。ss和sp应该不能说总是用于储存地址,我想到了一种特殊情况。ss,sp是与堆栈相关的寄存器,cpu会认为ss:sp指向的是栈顶,但是比如你写了一个子程序,在开始先将这两个寄存器的值存储起来,然后再将其用作一般的寄存器,只要你在程序中没有出栈入栈操作,在最后恢复ss,sp的值,整个程序还是没问题的,虽然一般没人这么蛋疼,但是我觉得这可以表明ss,sp不一定总是存储地址。只有cs和ip总是储存地址

  展开全部!!!!首先说明我是粘贴的! 因为我说不了这么细 o(∩_∩)o

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

  32位CPU有4个32位的通用寄存器EAX、EBX、ECX和EDX。对低16位数据的存取,不会影响高16位的数据。这些

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

  存器都有自己的名称,可独立存取。程序员可利用数据寄存器的这种“可分可合”的特性,灵活地处理字/字

  寄存器AX和AL通常称为累加器(Accumulator),用累加器进行的操作可能需要更少时间。累加器可用于乘、

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

  寄存器CX称为计数寄存器(Count Register)。在循环和字符串操作时,要用它来控制循环次数;在位操作

  寄存器DX称为数据寄存器(Data Register)。在进行乘、除运算时,它可作为默认的操作数参与运算,也

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

  寄存器EAX、EBX、ECX和EDX不仅可传送数据、暂存数据保存算术逻辑运算结果,而且也可作为指针寄存器,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  在实方式下,由于每个段的最大范围为64K,所以,EIP中的高16位肯定都为0,此时,相当于只用其低16位

  展开全部任何CPU,其PC寄存器永远存储的是地址,不可能用于存储其它数据。

本文链接:http://kuenergyclub.com/dizhijicunqi/401.html