User: alciro    User
 Original    Translate to:  Deutsch  English  Français  中文  
 

Microcontroladores 8051

5.3. 堆栈或堆

堆栈或堆栈输出)数据结构与访问, 后进先出 (最后一,后进先出。作为相似可能与存储相关的书籍,这是相互储存桩,新元素是堆放在最后,和弟弟都被删除被删除最后一个被堆叠。

这种数据结构的类型是易于开发的微处理器系统,并与数据列表时非常有用,它用于在子程序和中断微处理器的内部工作至关重要。

有些芯片可能有内部堆栈,代表了非常快,但规模有限,大多数微处理器的外部存储器中的堆栈,一个事实者提供了巨大的存储容量和位置的控制,虽然访问慢。

5.3.1. 堆栈指针(堆栈指针)

这个指针 (堆栈指针)顾名思义是一个记录指针指向内存位置的堆栈。户籍在8051 SP是81F位于SFR的记忆

当您执行记录的SP 复位寄存器的值自动设置为07h,使堆栈默认设置在08H处的位置,该银行的地区使用。这是明智的改变另一个内存区域的电池,例如,30h的位置(外记录)。放置堆栈指针作为该计划的第一条语句设置:

MOV SP,#2FH ; Situar el puntero del stack en la posición 30H

堆栈指针(堆栈指针)

5.3.2. 单键

PUSH指令,地址位于堆栈中的内容,首先要增加堆栈指针,然后按照地址的内容被复制到SP的内存堆栈指针指示。

PUSH指令目录

1 º
(SP法)=(SP)的一 增加堆栈指针指向下一个位置
2 º
((SP法))=(地址)
把堆栈上(地址所指向的SP)的内容管理

例如:

MOV A,#3 ; Cargar el acumulador con la constante 3
MOV B,#5 ; Cargar el registro B con la constante 5
...
...
PUSH A ; Situar en el Stack el contenido del Acumulador
PUSH B ; Situar en el Stack el contenido del registro B

PUSH指令

5.3.3. 持久性有机污染物

POP指令读取堆栈地址的内容表示SP(堆栈指针)并将其放置在指定的地址,然后递减堆栈指针SP留下的位置。

迪尔POP指令

1 º
  (地址)=((SP))
回顾堆栈地址的内容(指由SP来)
2 º
  (SP)=(SP)-1 堆栈指针递减到以前的位置

应该牢记,对于堆栈的正常运作时,即进入最后的数据必须是第一个复苏,如果我们把重点放在上面的例子,已经在堆栈中的内容寄存器A和然后B,检索数据时,必须以相反的顺序进行输入,第一个B,然后A。

例如:

...
...
POP B ; Recupera en el registro B el contenido del Stack
POP A ; Recupera en el acumulador el contenido del Stack

POP指令
Loading
copyright © 2007-2024  www.alciro.org  All rights reserved.         
Share |