指令指针寄存器和指针寄存器差异性在哪儿

存储技术

595人已加入

描述

  什么是指令寄存器

  指令寄存器(IR,Instruction Register),是临时放置从内存里面取得的程序指令的寄存器,用于存放当前从主存储器读出的正在执行的一条指令。

  当执行一条指令时,先把它从内存取到数据寄存器(DR,Data Register)中,然后再传送至IR。指令划分为操作码和地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。指令译码器就是做这项工作的。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。

  寄存器

  什么是指针寄存器

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

  响高16位的数据。

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

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

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

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

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

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

  指令指针寄存器和指针寄存器的关系

  指令寄存器IR ,是临时放置从内存里面取得的代码数据(也就是指令),然后等待译码器来译码。

  指令指针寄存器ip,里面放置的是不是指令,而是一个指向下一个将要去获取的指令的内存地址(所以它是一个指针)。

  它们的关系就是,CPU从指令指针寄存器ip 获得指令的内存地址,然后取出指令,放置到指令寄存器IR。接下来,指令指针寄存器ip自己加1(也就是指向下一条指令)。

  指令指针寄存器和指针寄存器的差异

  指令指针寄存器

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

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

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

  时,不考虑存在指令队列的情况。

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

  的IP来反映程序中指令的执行次序。

  指针寄存器

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

  响高16位的数据。

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

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

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

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

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

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

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分