itgle.com

在向下生成的堆栈中,如果入栈指令PUSHX的操作定义为:SP←(SP)+1,M(SP)←M(X),则出栈指令POPX应定义为()。A.SP←(SP)-1,M(X)←M(SP) B.SP←(SP)+1,M(X)←M(SP) C.M(X)←M(SP),SP←(SP)-1 D.M(X)←M(SP),SP←(SP)+1

题目
在向下生成的堆栈中,如果入栈指令PUSHX的操作定义为:SP←(SP)+1,M(SP)←M(X),则出栈指令POPX应定义为()。

A.SP←(SP)-1,M(X)←M(SP)
B.SP←(SP)+1,M(X)←M(SP)
C.M(X)←M(SP),SP←(SP)-1
D.M(X)←M(SP),SP←(SP)+1

相似考题
更多“在向下生成的堆栈中,如果入栈指令PUSHX的操作定义为:SP←(SP)+1,M(SP)←M(X),则出栈指令POPX应定义为()。”相关问题
  • 第1题:

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

    A.PC

    B.指令寄存器

    C.(SP)-1

    D.(SP)+1


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

  • 第2题:

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

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

    答案:A
    解析:

  • 第3题:

    堆栈寻址方式中,设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)。

  • 第4题:

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

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

    正确答案:A

  • 第5题:

    堆栈寻址方式中,设A为累加寄存器,SP为堆栈指示器,Msp为SP指示器的栈顶单元,如果操作的动作是:(A)→Msp,(SP)-1→SP,那么出栈操作的动作为:()

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

    正确答案:B

  • 第6题:

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


    正确答案:SP=1078H

  • 第7题:

    若当前SS=3500H,SP=0800H,说明堆栈段在存储器中的物理地址,若此时入栈10个字节,SP内容是什么?若再出栈6个字节,SP为什么值?


    正确答案:物理地址:35000H~35800H。入栈10个字节后 SP为7F6H。再出栈6个字节后SP为7FCH。

  • 第8题:

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

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

    正确答案:A

  • 第9题:

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


    正确答案:正确

  • 第10题:

    何谓堆栈?栈指针SP的作用是什么?为什么要重新定义SP?


    正确答案: (1)堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。
    (2)栈指针SP的作用是指向栈顶,存放栈顶地址。
    (3)为了避免与工作寄存器重迭,一般在程序的初始化时应重新定义SP,再定位堆栈区域。

  • 第11题:

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

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

    B

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

    C

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

    D

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


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

  • 第12题:

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

    B


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

  • 第13题:

    堆栈寻址方式中,设A为累加寄存器,SP为堆栈指示器,Msp为SP指示器的栈顶单元,如果操作的动作是:(A)→Msp,(SP)-1→SP,那么出栈操作的动作为:()

    A.(Msp)→A,(SP)+1→SP

    B.(SP)+1→SP,(Msp)→A

    C.(SP)-1→SP,(Msp)→A

    D.(Msp)→A,(SP)-1→SP


    参考答案:B

  • 第14题:

    在堆栈寻址中,设A为累加器,SP为堆栈指示器,Msp为SP指示的栈顶单元。如果进栈操作顺序是:(SP)-1→SP,(A)→Msp,那么出栈操作的顺序应是()。

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

    答案:A
    解析:
    堆栈是按特定顺序进行访问的存储区,其访问方式是后进先出,即先存入的数据后读出。对堆栈的操作有入栈和出栈两种,两者的操作完全相反,包括功能和顺序均相反。

  • 第15题:

    在向上生成(地址码减小方向)堆栈中,若约定位是顶栈(即堆顶指针随时指向实有数据的堆顶),则正确的压入数据操作为()。

    A.先使(sP)+1,再写入数据
    B.先写入数据,再使(SP)+1
    C.先使(SP)-1,再写入数据
    D.先写入数据,再使(SP)-1

    答案:D
    解析:
    把要压栈的数据先写进堆栈指针现在所指的地址,再改变堆栈指针。因为地址码的方向是减小,所以是(SP)-1。

  • 第16题:

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


    正确答案:错误

  • 第17题:

    假设(SS)=2250H,(SP)=0140H,如果在堆栈中存入5个数据,则栈顶的物理地址为()。如果又从堆栈中取出3个数据,则栈顶的物理地址为()


    正确答案:22636H;2263CH

  • 第18题:

    假设(AX)=1234H,(BX)=5678H,(SP)=1000H,指出执行下面的程序段后,各相关寄存器及堆栈段中的内容。 PUSH AX ;(AX)=?,(BX)=?,(SP)=?,栈顶字节[SP]=?, 栈顶第二字节[SP+1]=? PUSH BX ;(AX)=?,(BX)=?,(SP)=?,栈顶字节[SP]=?, 栈顶第二字节[SP+1]=? POP AX ;(AX)=?,(BX)=?,(SP)=?,栈顶字节[SP]=?, 栈顶第二字节[SP+1]=?


    正确答案: (AX)=1234H,(BX)=5678H,(SP)=0FFEH,栈顶字节[SP]=34H,栈顶第二字节[SP+1]=12H
    (AX)=1234H,(BX)=5678H,(SP)=0FFCH,栈顶字节[SP]=78H,栈顶第二字节[SP+1]=56H
    (AX)=5678H,(BX)=5678H,(SP)=0FFEH,栈顶字节[SP]=34H,栈顶第二字节[SP+1]=12H

  • 第19题:

    已知堆栈段指针寄存器(SP)=1076H,入栈4个数后(SP)为多少?


    正确答案:SP=106EH

  • 第20题:

    执行入栈指令PUSH时,栈顶指针SP为()

    • A、SP←SP+1
    • B、SP←SP-1
    • C、SP←SP+2
    • D、SP←SP-2

    正确答案:A

  • 第21题:

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


    正确答案:错误

  • 第22题:

    8051的堆栈是向地址的()端生成的。入栈时SP先(),再压入数据。


    正确答案:高;加1

  • 第23题:

    单选题
    堆栈寻址方式中,设A为累加寄存器,SP为堆栈指示器,Msp为SP指示器的栈顶单元,如果操作的动作是:(A)→Msp,(SP)-1→SP,那么出栈操作的动作为:()
    A

    (Msp)→A,(SP)+1→SP

    B

    (SP)+1→SP,(Msp)→A

    C

    (SP)-1→SP,(Msp)→A

    D

    (Msp)→A,(SP)-1→SP


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