堆栈的作用是什么?在程序设计时,为什么要对堆栈指针SP重新赋值?

题目

堆栈的作用是什么?在程序设计时,为什么要对堆栈指针SP重新赋值?

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

什么是堆栈?它的作用是什么?堆栈指针的作用是什么?


正确答案: 堆栈是一个按照后进先出的原则存取数据的部件,它是由栈区和栈指针组成的。堆栈的作用是当主程序调用子程序、子程序调用子程序或中断时转入中断服务程序时,能把断点地址及有关的寄存器、标志位及时正确地保存下来,并能保证逐次正确地返回。堆栈除了有保存数据的栈区外,还有一个堆栈指针SP,它用来指示栈顶的位置。若是“向下生成”的堆栈,随着压入堆栈数据的增加,栈指针SP的值减少。但SP始终指向栈顶。

第2题:

51应用系统中,为何要对堆栈指针SP重新设置?


正确答案:复位后(SP)=07H,则堆栈是从08H开始存放数据的。而内部数据存储器中00H~1FH单元为工作寄存器区,而20H~2FH单元为位寻址区,在实际的应用系统中,这些区域都可能使用到。故一般将堆栈设置在地址30H以后的单元中,所以需要对堆栈指针SP重新设置。

第3题:

单片机的堆栈指针SP始终是()。

A.指示堆栈底

B.指示堆栈顶

C.指示堆栈地址

D.指示堆栈长度


参考答案:B

第4题:

设堆栈段寄存器(SS)=0E4BH,程序中设堆栈长度为200H个字节。试计算出堆栈底部字单元物理地址,堆栈指针SP初始值(即堆栈中没有数据时)和SP初始值指向的物理地址。


正确答案:物理地址为:3E4B0H,SP的初始值为200H,指向的物理地址为:3E6B1H.。

第5题:

基址指针(BP)和堆栈指针(SP)在使用中有何区别?


正确答案:BP与SP都用于存放寻址堆栈的偏移地址,但SP存放的是距栈顶的偏移地址,而SP存放的是距堆栈首地址的偏移地址。两者是既有联系又有区别的地址值。

第6题:

目前堆栈指针SP=3452H,则执行PUSHAX,PUSHBX后,堆栈指针SP=()。

  • A、344EH
  • B、3448H
  • C、3456H
  • D、2454H

正确答案:A

第7题:

在存储器堆栈中,若栈底地址为A,SP指针初值为A--1,当堆栈采用从地址小的位置向地址大的位置生成时,弹出操作应是()

  • A、先从堆栈取出数据,然后SP指针减
  • B、先从堆栈取出数据,然后SP指针加
  • C、SP指针先加1,然后从堆栈取出数据
  • D、SP指针先减1,然后从堆栈取出数据

正确答案:A

第8题:

堆栈操作中都是对栈顶单元进行的,访问堆栈的地址是由堆栈指针SP指定的。在操作过程中,指针 SP不需要用户指定。在下推式堆栈中,写入堆栈的单元地址是(36)。

A.PC

B.指令寄存器

C.(SP)-1

D.(SP)+1


正确答案:D
解析:堆栈是一个专门的存储区,其存取数据的顺序是先进后出,每次操作都是对栈顶单元进行的。栈顶单元的地址,每次进出栈时都要自动修改。栈顶单元的地址放在堆栈指针SP中,写入堆栈时,栈顶单元已经存有数据,再写入新数据时,不能写入原来的SP中,必须写到栈顶单元的下一单元中,在堆栈地址是向下生长的下推式堆栈中,写入数据的堆栈单元的堆栈单元地址是(SP)+1,即进栈操作把SP加1后再把进栈的数据写入新的栈顶单元(SP)/1中。出栈时,把栈顶单元内容弹出,然后(SP)-1。指针SP的修改是指令自动完成的,不需要用户参与。

第9题:

在8086/8088微机系统中,堆栈与堆栈指针SP的正确位置是()

  • A、堆栈在CPU中,SP也在CPU中
  • B、堆栈在ROM中,SP在CPU中
  • C、堆栈在CPU中,SP在RAM中
  • D、堆栈在RAM中,SP在CPU中

正确答案:D

第10题:

堆栈有哪些功能?堆栈指示器( SP)的作用是什么?


正确答案:堆栈在中端过程中用来保护现场数据,复位后SP=7H,而堆栈一般设置在通用ROM区(30H-7FH),在系统初始化时候要从新设置。