正在加载图片...
4.3堆栈 1.堆栈( stack)一按先进后出(LFO)或先进后出(FO)存入或取出信息的存 储区。 2.术语 ①栈项——堆栈中一个单元的元素(数据) ②进栈——数据按顺序存入堆栈,称为进栈或压栈(PUSH ③出栈—栈项按与进栈相反的顺序从堆栈中读出,称为出栈或弹出(POP)。 ④栈顶元素——最迟进栈或即将出栈的元素。 4.3.1寄存器堆栈 1.硬件组成 在CPU中设置一组专门的具有对位串联的寄存器组成堆栈。 ②有+-1功能的计数器及判断“栈满”和“栈空”的电路 2.堆栈指令:PUSH和POP 3.进出栈操作 4.寄存器堆栈的特点 只有一个出入口,后进先出,堆栈容量固定 432存储器堆栈 存储器堆栈的构成 ①在内存开辟专用的存储区(1个或多个)作为堆栈 ②设置堆栈指针SP(堆栈指示器、堆栈地址计数器) SP提供进栈或出栈的内存地址 ③堆栈指令 PUSH、POP或MOV 2.存储器堆栈的工作方式(从高地址开始生成) ①建栈:将栈底下一个单元地址送SP ②进栈操作 首先(SP}1→SP,然后数据→Msp 线她一SP所指定的存储单元 栈操作 首先(M)p读出,然后(SP)+1+SP (M)sp-SP所指定的存储单元的内容。 433堆栈的应用 1.用堆栈为零地址的指令提供操作数。 2.用堆栈存放返主地址,实现子程序的嵌套和递归调用 3.用堆栈存放多级中断的有关信息,实现多级中断的嵌套 使用堆栈的好处:使用方便,准确无误。4.3 堆栈 1. 堆栈(stack)—按先进后出(LIFO)或先进后出(FILO)存入或取出信息的存 储区。 2. 术语 ①栈项——堆栈中一个单元的元素(数据) ②进栈——数据按顺序存入堆栈,称为进栈或压栈(PUSH) ③出栈——栈项按与进栈相反的顺序从堆栈中读出,称为出栈或弹出(POP)。 ④栈顶元素——最迟进栈或即将出栈的元素。 4.3.1 寄存器堆栈 1.硬件组成 ① 在 CPU 中设置一组专门的具有对位串联的寄存器组成堆栈。 ② 有+/-1 功能的计数器及判断“栈满”和“栈空”的电路 2.堆栈指令:PUSH 和 POP 3.进出栈操作 4.寄存器堆栈的特点 只有一个出入口,后进先出,堆栈容量固定。 4.3.2 存储器堆栈 1.存储器堆栈的构成 ①在内存开辟专用的存储区(1 个或多个)作为堆栈。 ②设置堆栈指针 SP(堆栈指示器、堆栈地址计数器), SP 提供进栈或出栈的内存地址。 ③堆栈指令 PUSH、POP 或 MOV 2.存储器堆栈的工作方式(从高地址开始生成) ①建栈:将栈底下一个单元地址送 SP ②进栈操作 首先(SP)-1ÆSP,然后数据ÆMsp Msp—SP 所指定的存储单元 ③出栈操作 首先(M)sp 读出,然后(SP)+1ÆSP (M)sp—SP 所指定的存储单元的内容。 4.3.3 堆栈的应用 1.用堆栈为零地址的指令提供操作数。 2.用堆栈存放返主地址,实现子程序的嵌套和递归调用。 3.用堆栈存放多级中断的有关信息,实现多级中断的嵌套。 使用堆栈的好处:使用方便,准确无误
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有