niusouti.com
更多“堆栈中的进栈操作PUSH是将数据压入堆栈。进栈操作时,先将SP指针减1后再将数据压栈”相关问题
  • 第1题:

    堆栈寻址方式中,设A为某通用寄存器,SP为堆栈指示器,Msp为SP指示器的栈项单元,如果入栈操作的动作是(A)→Msp,(SP)-1→SP,那么出栈操作的动作应为()。

    A.(SP)+1→SP,(Msp)→A
    B.(Msp)→A,(SP)+1→SP
    C.(SP)→1→SP,(Msp)→A
    D.(Msp)→A,(SP)-1→SP

    答案:A
    解析:
    由入栈操作的动作可知,堆栈指示器SP是向低地址扩充的,其指向的是栈项下一个单元的地址。那么在出栈时,首先将堆栈指示器SP指向栈顶元素,即将SP向高地址扩充一个单元(对应动作为:(SP)+1→SP).然后将该单元的内容存放到通用寄存器A中(对应动作为:(Msp)→A)。

  • 第2题:

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


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

  • 第3题:

    已知堆栈段指针寄存器(SP)=1027H,进栈5个数后(SP)为多少?


    正确答案:(SP)=1031H

  • 第4题:

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

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

    正确答案:C

  • 第5题:

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

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

    正确答案:B

  • 第6题:

    在存储器堆栈结构中,在栈底为最大地址的堆栈操作中压栈是指()。

    • A、先使SP减1,再将数据存入SP所指单元
    • B、先使SP加1,再将数据存入SP所指单元
    • C、先将数据存入SP所指单元,再将SP减1
    • D、先将数据存入SP所指单元,再将SP加1

    正确答案:A

  • 第7题:

    堆栈指针SP存放栈顶的地址,进栈时自动加1,出栈时自动减1,因此,SP总是指向栈顶


    正确答案:正确

  • 第8题:

    因为SP所指栈顶为“实”栈顶,所以在入栈和出栈操作时都要先修改堆栈指针SP,再执行入栈、出栈操作。


    正确答案:错误

  • 第9题:

    关于MCS-51的堆栈操作,正确的说法是()。

    • A、先入栈,再修改栈指针
    • B、先修改栈指针,再出栈
    • C、先修改栈指针,再入栈
    • D、以上都不对

    正确答案:C

  • 第10题:

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

    先从堆栈取出数据,然后SP指针减

    B

    先从堆栈取出数据,然后SP指针加

    C

    SP指针先加1,然后从堆栈取出数据

    D

    SP指针先减1,然后从堆栈取出数据


    正确答案: C
    解析: 堆栈是按特定顺序进行访问的存储区,其访问方式是后进先出,即先存入的数据后读出。对堆栈的访问由堆栈指针寄存器SP控制,当堆栈采用从地址小的位置向地址大的位置生成时,入栈操作是SP指针先加1,然后将数据存人堆栈,从堆栈取出弹出操作是先从堆栈取出数据,然后SP指针减1。

  • 第11题:

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

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

  • 第12题:

    判断题
    因为SP所指栈顶为“实”栈顶,所以在入栈和出栈操作时都要先修改堆栈指针SP,再执行入栈、出栈操作。
    A

    B


    正确答案:
    解析: 暂无解析

  • 第13题:

    以下函数为链栈的进栈操作,x是要进栈的结点的数据域,top为栈顶指针。
    sizeof(structnode)
    P->next=top
    top=p

  • 第14题:

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

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

    正确答案:A

  • 第15题:

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


    正确答案:错误

  • 第16题:

    已知堆栈段指针寄存器(SP)=1027H,进栈5个数,然后再出栈4个数后(SP)为多少?


    正确答案:(SP)=1029H

  • 第17题:

    数据结构中,下列选项中关于栈的插入操作说法正确的是()。

    • A、栈的插入操作叫做进栈
    • B、栈的插入操作叫做压栈
    • C、栈的插入操作叫做入栈
    • D、栈的插入操作叫做弹栈

    正确答案:A,B,C

  • 第18题:

    请描述CPU发生中断时入栈和出栈的过程,并分析堆栈段中数据的存储方式及栈指针变化之间的关系。


    正确答案: 堆栈的设立是为了中断操作和子程序的调用而用于保存数据的,即常说的断点保护和现场保护。微处理器无论是在转入子程序和中断服务程序的执行,执行完后,还是要回到主程序中来,在转入子程序和中断服务程序前,必须先将现场的数据进行保存起来,否则返回时,CPU并不知道原来的程序执行到哪一步,原来的中间结果如何?所以在转入执行其它子程序前,先将需要保存的数据压入堆栈中保存。以备返回时,再复原当时的数据。供主程序继续执行。 转入中断服务程序或子程序时,需要保存的数据可能有若干个,都需要一一地保留。如果微处理器进行多重子程序或中断服务程序嵌套,那么需保存的数据就更多,这要求堆栈还需要有相当的容量。否则会造成堆栈溢出,丢失应备份的数据。轻者使运算和执行结果错误,重则使整个程序紊乱。
    M.CS-51的堆栈是在RAM中开辟的,即堆栈要占据一定的RAM存储单元。同时MCS-51的堆栈可以由用户设置,SP的初始值不同,堆栈的位置则不一定,不同的设计人员,使用的堆栈区则不同,不同的应用要求,堆栈要求的容量也有所不同。堆栈的操作只有两种,即进栈和出栈,但不管是向堆栈写入数据还是从堆栈中读出数据,都是对栈顶单元进行的,SP就是即时指示出栈顶的位置(即地址)。在子程序调用和中断服务程序响应的开始和结束期间,CPU都是根据SP指示的地址与相应的RAM存储单元交换数据。
    堆栈的操作有两种方法:其一是自动方式,即在中断服务程序响应或子程序调用时,返回地址自动进栈。当需要返回执行主程序时,返回的地址自动交给PC,以保证程序从断点处继续执行,这种方式是不需要编程人员干预的。第二种方式是人工指令方式,使用专有的堆栈操作指令进行进出栈操作,也只有两条指令:进栈为PUSH指令,在中断服务程序或子程序调用时作为现场保护。出栈操作POP指令,用于子程序完成时,为主程序恢复现场。
    在执行中断子程序或者调用别的子程序时,系统会自动把当前的断点地址压入堆栈进行保护,执行完子程序即遇到RET或者RETI时,把断点地址弹出装入PC中,从而返回原程序的断点处继续往下执行。当你的主程序和子程序都用到某些标志位时,需要把他们也进行堆栈保护。比如你的主程序有加减乘除法,中断子程序中也有,那么你就必须对ACC,PSW等标志寄存器进行保护,因为你在执行中断程序的加减法时可能已经有进位或者借位,已经改变了某些标志位,而回到主程序中时若主程序的加减法没有进位时,标志位在子程序中已被改变,现在就可能出错了。所以在进入中断子程序时要首先把这些标志位(即ACC和PSW)保存起来即PUSH ACC和PUSH PSW,子程序结束时释放:POP PSW和POP ACC,以便回到主程序时能正确的继续运行。

  • 第19题:

    MSC-51属向上增长型堆栈,这种堆栈的操作规则是进栈操作时,先()后写入数据;出栈时,先读出数据()。


    正确答案:SP加1;SP减1

  • 第20题:

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


    正确答案:微型计算机中的堆栈是读写存储器RAM中的一个特殊的区域,是一组按照“先进后出”的方式工作的、用于暂存信息的存储单元。
    设置堆栈的目的是便于保护断点地址与现场信息。
    用堆栈指针指示堆栈所在的位置。
    数据进栈、出栈“按先进后出”的原则工作。
    进栈用PUSH指令,出栈用POP指令。进栈时指针向地址增加的方向变化,出栈时指针向地址减小的方向变化。
    栈底是最先进栈的信息所在的单元。

  • 第21题:

    多选题
    数据结构中,下列选项中关于栈的插入操作说法正确的是()。
    A

    栈的插入操作叫做进栈

    B

    栈的插入操作叫做压栈

    C

    栈的插入操作叫做入栈

    D

    栈的插入操作叫做弹栈


    正确答案: D,C
    解析: 暂无解析

  • 第22题:

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

    B


    正确答案:
    解析: 暂无解析

  • 第23题:

    判断题
    堆栈寻址中,在压入操作时,先减小SP后将数据压入堆栈;在弹出操作时,先从堆栈弹出数据后增加SP值.
    A

    B


    正确答案:
    解析: 暂无解析

  • 第24题:

    判断题
    堆栈寻址中,在压入操作时,先将数据压入堆栈后减小SP的值;在弹出操作时,先增加SP的值后将数据弹出堆栈。
    A

    B


    正确答案:
    解析: 暂无解析