何谓堆栈?为什么要设置堆栈?栈区是怎样确定的?数据进栈、出栈按照

题目

何谓堆栈?为什么要设置堆栈?栈区是怎样确定的?数据进栈、出栈按照何种规律?进栈用什么指令?出栈用什么指令?进栈、出栈时栈指针如何变化?通常栈底所指是什么内容?

参考答案和解析
正确答案:微型计算机中的堆栈是读写存储器RAM中的一个特殊的区域,是一组按照“先进后出”的方式工作的、用于暂存信息的存储单元。
设置堆栈的目的是便于保护断点地址与现场信息。
用堆栈指针指示堆栈所在的位置。
数据进栈、出栈“按先进后出”的原则工作。
进栈用PUSH指令,出栈用POP指令。进栈时指针向地址增加的方向变化,出栈时指针向地址减小的方向变化。
栈底是最先进栈的信息所在的单元。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

“删除栈顶元素”、“删除栈底元素”、“判断堆栈是否为空”和“将堆栈置为空栈”这4种操作中,()不是堆栈的基本操作。


正确答案:“删除栈底元素”

第2题:

在存储器堆栈结构中,堆栈指针SP的内容是()。

  • A、栈顶单元地址
  • B、栈底单元地址
  • C、栈顶单元内容
  • D、栈底单元内容

正确答案:A

第3题:

在堆栈操作中,当进栈数据全部弹出后,这时SP应指向()。

A.栈底单元

B.7FH单元

C.栈底单元地址加1

D.栈底单元地址减1


参考答案:A

第4题:

堆栈的深度由哪个寄存器确定? 为什么说一个堆栈的深度最大为64KB? 在执行一条入栈或出栈指令时,栈顶地址将如何变化?


正确答案:堆栈的深度由SP决定,由于16位的SP=FFFFH可最大寻址64KB,故深度最大为64KB。当字数据出栈时,高8位放入由SP-2寻址单元,然后SP-2;当字数据出栈时,低8位从SP寻址的单元弹出,高8位从SP+1寻址的单元弹出,然后SP+2。

第5题:

51单片机中,堆栈存放数据的原则是先进后出,后进先出,数据进栈后,栈顶向下移动,栈指针SP值随之减小。


正确答案:错误

第6题:

某堆栈初始为空,符号PUSH和POP分别表示1次进栈操作和1次出栈操作。对于进栈序列a,b,c,d,e,经过PUSH, PUSH, POP, PUSH, POP, PUSH, PUSH时,得到的出栈序列是什么?


正确答案:得到的出栈序列是b,c

第7题:

若5个元素的进栈序列是a、b、c、d、e,利用堆栈操作能否得到出栈序列b、c、a、e、d和d、b、a、c、e?对于不能得到的出栈序列,请说明理由。


正确答案:能够得到出栈序列b、c、a、e、d,但不能得到出栈序列d、b、a、c、e。因为若出栈序列以元素d开始,则说明在d之前的进栈元素有a、b和c,三个元素中c是此刻的栈顶元素,b和a不可能先于元素c出栈,因此,不可能得到出栈序列d、b、a、c、e。

第8题:

下列关于8086系统堆栈的论述中,正确的是。()

A.堆栈的工作方式是“先进后出”,入栈时SP减小
B.堆栈的工作方式是“先进后出”,入栈时SP增大
C.堆栈的工作方式是“先进先出”,入栈时SP减小
D.堆栈的工作方式是“先进先出”,入栈时SP增大

答案:A
解析:

第9题:

在存储器堆栈中,保持不变的是()

  • A、 栈顶
  • B、 栈指针
  • C、 栈底
  • D、 栈中的数据

正确答案:C

第10题:

在堆栈中保持不变的是()

  • A、栈指针
  • B、栈底
  • C、栈顶
  • D、栈中数据

正确答案:B

更多相关问题