简述堆栈的存取点写出栈操作指令

 我来答
蒯玉蓉遇雨
2019-10-03 · TA获得超过3.5万个赞
知道大有可为答主
回答量:1.4万
采纳率:28%
帮助的人:919万
展开全部
在计算机领域,堆栈是一个不容忽视的概念,但是很多人甚至是计算机专业的人也没有明确堆栈其实是两种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。要点:堆,顺序随意。栈,后进先出(Last-In/First-Out)。
  单片机堆栈操作指令如下:
  PUSH
direct(堆栈指令)其作用是先将栈指针SP的内容加1,然后将直接寻址单元中的数压入到sP所指的单元中。若数据已入栈,则SP指向最后堆人数据所在的存储单元(即指向栈顶)。
  POP
direct(出栈指令)其作用是先将栈指针SP所指出单元的内容送入直接寻址单元中,然后将栈指针SP的内容减1,此时SP指向新的栈顶。
  使用堆栈时,一般需设定SP的初始值。堆栈原则上可以设在内部RAM的任意区域,但为使用方便,一般设在30H~7FH。另外,需注意留出足够的存储单元作栈区,否则可能发生数据重叠,引起程序混乱。
  由于入栈的第一个数必须存放在SP+1的存储单元,故实际栈顶是在SP+1所指出的单元。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
呼时芳仝娟
2019-08-28 · TA获得超过3.7万个赞
知道小有建树答主
回答量:1.4万
采纳率:30%
帮助的人:787万
展开全部
估计你也就是指令的堆栈工作原理不清楚,找本介绍堆栈这块详细点的书看看吧,也不难,挺简单的ld
i0.1
首先装载i0.1常开
an
i0.0
串联i0.0常闭
lps
将以上触点的逻辑运算的结果(根据i0.0和i0.1的状态只可能是0或1)执行逻辑入栈操作,也就是说将存入第0级堆栈存储器的i0.0与i0.1串联的值复制后由堆栈栈顶压入,使0级堆栈和1级堆栈的值相同
a
i0.2
将此时0级堆栈的值再与上i0.2的值,并将其结果存入0级堆栈中
=
q0.1
将0级堆栈中的值(栈顶的值)送至输出映像寄存器q0.1中
lpp
执行逻辑出栈指令时将栈顶值弹出堆栈,1级堆栈的值上升到0级堆栈中(1级堆栈的值实际上就是i0.0与i0.1串联之后的结果)
=
q0.0
将此时0级堆栈的值送入q0.0中
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式