一条双字长直接寻址的子程序调用指令,其第一个字为操作码和寻址特征,第二个字为地址码5000H。假设PC当前值为2000H,SP的内容为0100H,栈顶内容为2746H,存储器按字节编址,而且进栈操作是先执行(SP)-△→SP,然后存入数据,子程序返回后,PC、SP及栈顶内容为___。A.2004H,0100H,2746HB.2000H,0100H,2746HC.2004H,00FEH,2746HD.2004H,0100H,2004H

一条双字长直接寻址的子程序调用指令,其第一个字为操作码和寻址特征,第二个字为地址码5000H。假设PC当前值为2000H,SP的内容为0100H,栈顶内容为2746H,存储器按字节编址,而且进栈操作是先执行(SP)-△→SP,然后存入数据,子程序返回后,PC、SP及栈顶内容为___。

A.2004H,0100H,2746H

B.2000H,0100H,2746H

C.2004H,00FEH,2746H

D.2004H,0100H,2004H


参考答案和解析
(1)CALL指令被读取前PC、SP和栈顶内容由题目给出即PC=1000HSP=0100H栈顶内容为1234H。 (2)CALL指令被执行后程序断点1002H进栈此时SP=00FFH栈顶内容为1002HPC被更新为子程序入口地址5000H。 (3)子程序返回后程序断点出栈PC=1002 HSP被修改为0100H栈顶内容为1234H。 (1)CALL指令被读取前,PC、SP和栈顶内容由题目给出,即PC=1000H,SP=0100H,栈顶内容为1234H。(2)CALL指令被执行后,程序断点1002H进栈,此时SP=00FFH,栈顶内容为1002H,PC被更新为子程序入口地址5000H。(3)子程序返回后,程序断点出栈,PC=1002H,SP被修改为0100H,栈顶内容为1234H。

相关考题:

若栈顶指针SP的值为100H,当执行完指令CALL AX后,SP的值为?()A、00FCHB、0098HC、00FEHD、0102H

执行入栈指令PUSH时,栈顶指针SP为:()。 A.SP←SP+1B.SP←SP-1C.SP←SP+2D.SP←SP-2

堆栈寻址方式中,设A为通用寄存器,SP为堆栈指示器,MSP为SP指示器的栈顶单元,如果操作的动作是:(A)→MSP,(SP)-1→SP,那么出栈的动作应是()。 A、(MSP)→A,(SP)+1→SPB、(SP)+1→SP,(MSP)→AC、(SP)-1→SP,(MSP)→AD、(SP)→A,(SP)-1→SP

PC中,设(SP)=0202H,(SS)=2000H,执行PUSH SP指令后,栈顶的物理地址为 ( )。A.0200HB.20102HC.20200HD.0102H

PC中,设(SP)=0202H,(SS)=2000H,执行PUSHSP指令后,栈顶的物理地址为( )。A.0200HB.20102HC.20200HD.0102H

PC机中,设(SP)=0100H,(SS)=2000H,执行PUSH3P指令之后,栈顶的物理地址是______。

假设(SP)=0100H,(SS)=200H,执行POP AX指令后,栈顶的物理地址是【 】。

假设(SP)=0100H,(SS)=2000H,执行PUSH BP指令后,栈顶的物理地址是( )。A.2000HB.00FEHC.20FEHD.xx

PC机中,设(SP)=0100H,(SS)=2000H,执行PUSH SP指令之后,栈顶的物理地址是【 】。

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

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

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

在存储器堆栈结构中,堆栈指针SP的内容是()。A、栈顶单元地址B、栈底单元地址C、栈顶单元内容D、栈底单元内容

设当前SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少?当执行PUSHBX指令后,栈顶地址和栈顶2个字节的内容分别是什么?

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

堆栈指SP的内容是()。A、栈顶地址B、栈底地址C、栈顶内容D、栈底内容

设SP=0100H,SS=2000H,执行指令PUSHBP指令后,栈顶(即SP所指向的单元)物理地址是:()A、00FEHB、20102HC、200FEHD、0102H

假设(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]=?

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

带参数的返回指令用在什么场合?设栈顶地址为3000H,当执行RET 0008后,问SP的值是多少?

在存储器堆栈结构中,在栈底为最大地址的堆栈操作中压栈是指()。A、先使SP减1,再将数据存入SP所指单元B、先使SP加1,再将数据存入SP所指单元C、先将数据存入SP所指单元,再将SP减1D、先将数据存入SP所指单元,再将SP加1

一个堆栈从3000H:0000H开始,最后一个字的偏移地址为0200H,SP内容为0052H,问:栈顶逻辑地址和物理地址、栈底逻辑地址和物理地址、SS的内容是多少?存入1234H后,SP内容是多少?堆栈内容如何变化?

执行入栈指令PUSH时,栈顶指针SP为()A、SP←SP+1B、SP←SP-1C、SP←SP+2D、SP←SP-2

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

假定设定堆栈指针SP的值为37H,在进行子程序调用时把断点地址进栈保护后,SP的值为()A、36HB、37HC、38HD、39H

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

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

问答题设当前SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少?当执行PUSHBX指令后,栈顶地址和栈顶2个字节的内容分别是什么?