参考答案和解析
正确答案:堆栈的深度由SP决定,由于16位的SP=FFFFH可最大寻址64KB,故深度最大为64KB。当字数据出栈时,高8位放入由SP-2寻址单元,然后SP-2;当字数据出栈时,低8位从SP寻址的单元弹出,高8位从SP+1寻址的单元弹出,然后SP+2。
更多“堆栈的深度由哪个寄存器确定? 为什么说一个堆栈的深度最大为64KB? 在执行一条入栈或出栈指令时,栈顶地址将如何变化?”相关问题
  • 第1题:

    零地址的运算类指令在指令格式中不给出操作数地址,参加运算的两个操作数来自()。

    A.累加器和寄存器
    B.累加器和暂存器
    C.堆栈的栈顶和次栈顶单元
    D.暂存器和堆栈的栈顶单元

    答案:C
    解析:
    零地址运算类指令的两个操作数均来自于堆栈,分别在栈项和次栈顶单元

  • 第2题:

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

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

    正确答案:A

  • 第3题:

    下列关于堆栈的说法,错误的是()

    • A、以“先入后出”为原则
    • B、栈区最高地址单元的前一个单元为栈底
    • C、运行中SP寄存器动态跟踪栈顶位置
    • D、压栈和弹出都是以字节为单位

    正确答案:D

  • 第4题:

    堆栈具有这样的特性,即最后一个入栈的元素,将是()出栈的元素。新入栈的元素将总是放在当前的()。不管什么时候,需要出栈时,总是从当前的()取走一个元素。


    正确答案:最先;栈顶;栈顶

  • 第5题:

    堆栈是一个特殊的存储器区域,其操作是以2字节单元为单位按照先进后出原则来处理;采用SP指向栈顶地址,入栈时地址变化为()。


    正确答案:SP<=(SP)-2

  • 第6题:

    执行逻辑弹出栈指令使堆栈深度减1。


    正确答案:正确

  • 第7题:

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


    正确答案:正确

  • 第8题:

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


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

  • 第9题:

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

    正确答案: “删除栈底元素”
    解析: 暂无解析

  • 第10题:

    单选题
    下列关于堆栈的说法,错误的是()
    A

    以“先入后出”为原则

    B

    栈区最高地址单元的前一个单元为栈底

    C

    运行中SP寄存器动态跟踪栈顶位置

    D

    压栈和弹出都是以字节为单位


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

  • 第11题:

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

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

  • 第12题:

    单选题
    堆栈指针的作用是用来指示()
    A

    栈底地址

    B

    栈顶地址

    C

    下一条要执行指令的地址


    正确答案: A
    解析:

  • 第13题:

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


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

  • 第14题:

    堆栈指针SP的内容是()

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

    正确答案:B

  • 第15题:

    堆栈指针的作用是()。

    • A、指明栈底的位置
    • B、指明栈顶的位置
    • C、操作数地址
    • D、指令的地址

    正确答案:B

  • 第16题:

    堆栈操作中用于指示栈顶地址的寄存器是()。

    • A、SS
    • B、SP
    • C、BP
    • D、CS

    正确答案:B

  • 第17题:

    请描述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,以便回到主程序时能正确的继续运行。

  • 第18题:

    简述什么是堆栈?堆栈中入栈、出栈的过程?


    正确答案: 堆栈是在内部RAM中按“后进先出”的规则组织的一片存储区。
    入栈操作时,先将SP的内容加1,然后将指令指定的直接地址单元的内容存入SP指向的单元;出栈操作时,先将SP指向的单元内容传送到指令指定的直接地址单元,然后SP的内容减1

  • 第19题:

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


    正确答案:错误

  • 第20题:

    堆栈指针SP的内容是()。

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

    正确答案:A

  • 第21题:

    单选题
    堆栈指SP的内容是()。
    A

    栈顶地址

    B

    栈底地址

    C

    栈顶内容

    D

    栈底内容


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

  • 第22题:

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

    B


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

  • 第23题:

    单选题
    堆栈指针SP的内容是()
    A

    栈顶单元内容

    B

    栈顶单元地址

    C

    栈底单元内容

    D

    栈底单元地址


    正确答案: B
    解析: 堆栈是按特定顺序进行访问的存储区,其访问方式是后进先出,即先存入的数据后读出。对堆栈的访问由堆栈指针寄存器SP控制,其内容为堆栈中栈顶单元的地址,即入栈时数据保存在SP指向的单元,出栈时将SP指向单元的内容取出。