
单片机应用技术 单片机的存储器 4有关堆栈 顾筠
单 片 机 的 存 储 器 单片机应用技术 4 有 关 堆 栈 顾 筠

单片机的存储器 存储器概述 单片机的程序存储器 单片机的数据存储器 有关堆栈
单片机的存储器 1 存储器概述 2 单片机的程序存储器 单片机的数据存储器 有关堆栈 3 4

4有关堆栈 >堆栈定义 ●堆栈是采用“先进后出”工作方式的一片缓冲区。 ●堆栈是用于暂时存放信息的存储单元。 >堆栈用途 ●堆栈主要在程序调用和中断操作中使用。 >堆栈功能 ●保护(恢复)现场和保护断点
4 有关堆栈 Ø堆栈定义 l堆栈是采用“先进后出”工作方式的一片缓冲区。 l堆栈是用于暂时存放信息的存储单元。 Ø堆栈用途 l堆栈主要在程序调用和中断操作中使用。 Ø堆栈功能 l保护(恢复)现场和保护断点

(1)MCS-51单片机的堆栈 ●MCS-51系列单片机的堆栈开辟在内部RAM中。 ●堆栈栈顶位置由堆栈指针SP指出。 ●SP起着管理堆栈的作用。 ●MCS-51系列单片机复位后$P=07H。 ●一般,应把$P初始化的值定在30H以后。 ●SP一经确定,堆栈的位置也就确定下来了
(1)MCS-51单片机的堆栈 lMCS-51系列单片机的堆栈开辟在内部RAM中。 l堆栈栈顶位置由堆栈指针SP指出。 lSP起着管理堆栈的作用。 lMCS-51系列单片机复位后SP=07H。 l一般,应把SP初始化的值定在30H以后。 lSP一经确定,堆栈的位置也就确定下来了

(2)堆栈操作 ●堆栈有两种操作方式,入栈和出栈。 >入栈:将数据送入堆栈称为压入操作。 ●指令代码:PUSH >出栈:把堆栈中内容取出来的操作称为弹 堆栈 出操作。 33H 32 ●指令代码:POP 31H SP 30日
(2)堆栈操作 l堆栈有两种操作方式,入栈和出栈。 Ø入栈:将数据送入堆栈称为压入操作。 l指令代码:PUSH Ø出栈:把堆栈中内容取出来的操作称为弹 出操作。 l指令代码:POP 堆栈 33H 32H 31H SP 30H

入栈操作 ●PUSH:将数据送入堆栈。 【例】指令序列 PUSH P0(数据1) PUSH30H(数据2) ●如:要压入3个数据,设SP=30H。 PUSH ACC(数据3) 堆栈指针SP+1 然后入栈 堆栈 数据1入栈 数据2入栈 数据3入栈 SP→33H 数据3 33H 33H SP→33H 数据3 SP→32H 数据2 32H SP→32H 数据2 32H 数据2 SP→31H 数据1 SP→31H 数据1 31H 数据1 31H 数据1 SP→30H 30H 30H 30H ① ② PUSH PO PUSH 30H PUSH ACC
数据1入栈 33H 32H SP31H 数据1 30H ① ① 入栈操作 lPUSH:将数据送入堆栈。 l如:要压入3个数据,设SP=30H。 堆栈 33H 32H 31H 30H 数据1 数据2入栈 33H SP32H 数据2 31H 数据1 30H ② 数据3入栈 SP33H 数据3 32H 数据2 31H 数据1 30H ③ 数据2 数据3 SP SP SP SP 堆栈指针SP+1 然后入栈 【例】指令序列 PUSH P0(数据1) PUSH 30H(数据2) PUSH ACC(数据3) PUSH P0 PUSH 30H PUSH ACC

出栈操作 ●POP:从堆栈取出数据 【例】指令序列 POP ACC 弹出数据 POP 30H ●如:要弹出3个数据,设SP=33H 然后堆栈指针 POP PO SP-1 (ACC)=数据3 (30H田)=数据2 (P0)=数据1 堆栈 数据3出栈 数据2出栈 数据1出栈 SP→33H 数据3 33H 数据3 33H 数据3 数据3 SP→32H 数据2 SP→32H 数据2 32H 数据2 2H 数据2 SP今31H 数据1 31H 数据1 SP今31H 数据1 31H 数据1 SP→30H 30H 30H SP→30H ① ② ③ 堆栈的特性: “先进后出” POP ACC POP 30H POP PO
数据3出栈 33H 数据3 SP32H 数据2 31H 数据1 30H ① ② 出栈操作 l POP:从堆栈取出数据 l 如:要弹出3个数据,设SP=33H 堆栈 33H 数据3 32H 数据2 31H 数据1 30H 数据1 数据2出栈 33H 数据3 32H 数据2 SP31H 数据1 30H ② 数据1出栈 33H 数据3 32H 数据2 31H 数据1 SP30H ③ 数据2 数据3 SP SP SP SP 弹出数据 然后堆栈指针 SP-1 【例】指令序列 POP ACC POP 30H POP P0 (ACC)=数据3 (30H) = 数据2 ( P0 ) = 数据1 l 堆栈的特性: “先进后出” POP ACC POP 30H POP P0

有关堆栈小结 >有关推找 MCS-51单片机的堆栈 堆栈操作 OPUSH POP
有关堆栈小结 Ø有关堆栈 lMCS-51单片机的堆栈 l堆栈操作 pPUSH pPOP

单片机应用技术 有关堆栈“学习结束 Thank You!
”有关堆栈“学习结束 单片机应用技术