所有栏目 | 云社区 美国云服务器[国内云主机商]
你的位置:首页 > 云社区 » 正文

程序存储器,堆栈和外部数据存储器各使用什么指针?

发布时间:2020-04-15 16:48:59

资讯分类:存储器  堆栈  指针  外部  程序  地址  存储器
程序存储器,堆栈和外部数据存储器各使用什么指针?

  

1、程序存储器指令地址使用程序计数器PC指针,PC中存放的是下一条将要从程序存储器中取出的指令的地址。程序计数器PC变化的轨迹决定程序的流程。PC最基本的工作方式是自动加1。在执行条件转移或无条件转移指令时,将转移的目的地址送入程序计数器,程序流向发生变化。在执行调用指令或响应中断时,将子程序的入口地址或者中断矢量地址送人PC,程序流向发生变化。  

2、堆栈地址使用堆栈指针.SP。SP在80C51中存放当前的堆栈栈顶所指存储单元地址,是一个8位寄存器,对数据按照“先进后出”原则进行管理。外接数据存储器地址使用数据指针DPTR。DPTR是一个16位特殊功能寄存器,主要功能是作为片外数据存储器或I/0寻址用的地址寄存器,这时会产生RD或wR控制信号,用于单片机对外扩的数据存储器或I/0的控制。

3、数据指针DPTR也可以作为访问程序存储器时的基址寄存器,此时是寻址程序存储器中的表格、常数等单元,而不是寻址指令。

程序存储器,堆栈和外部数据存储器各使用什么指针?

计算机中的堆栈是计算机存储数据的一种数据结构,通常由一块存储区和指向该存储区的指针SP构成。

在堆栈中保存数据叫入栈,从堆栈中读取数据叫出栈。堆栈保存数据的特点是入栈和出栈是倒序的,最先入栈的数据要到最后才能出栈,而最后入栈的数据最先出栈,这就是通常说的“先进后出,后进先出”。

堆栈保存数据和读取数据都是通过唯一的堆栈指针SP来实现的,SP的作用就是指示当前要出栈或入栈的数据,并在操作执行后自动递增或递减。至于是入栈递增还是入栈递减,由堆栈设计者确定。对于硬件堆栈,就是由CPU的生产厂家确定。但有一点,SP是入栈递增的,出栈就必定是递减,反之亦然。SP入栈递增的堆栈通常叫向上生长型的堆栈,反之就是向下生长型的堆栈。

8051的堆栈容量不超过(256-8)字节,单片机复位后SP的值为07H,SP是入栈递增,即向上生长型的堆栈。

留言与评论(共有 0 条评论)
   
验证码:
Top