如8051的SP的内容是40H,执行RET这样的指令后,()。

题目

如8051的SP的内容是40H,执行RET这样的指令后,()。

  • A、 当前寄存器SP中的内容为38H
  • B、 当前寄存器SP中的内容为3EH
  • C、 当前寄存器SP中的内容为RET所对应的地址单元的内容
  • D、 内存RAM的41H42H单元中存放RET指令所对应的PC值
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

已知SP=8000H,执行PUSHSI指令后,SP中的内容是()。

A8002H

B7FFFFH

C7FFEH

D7998H


参考答案C

第2题:

假设某子程序使用的返回指令是RET4,则返回地址为( )。

A.CALL指令下面第二条指令的地址

B.(SP+1)和(SP)中存放的地址

C.SP+5)和(SP+4)中存放的地址

D.CALL 指令下面第四条指令的地址


正确答案:B
解析:返回指令。一种方式是段内返回。先将栈顶的字送入IP,然后SP增2。若带立即数,SP再加立即数(丢弃一些在执行CALL之前入栈的参数)。二是段间返回。栈顶的字送入IP后(SP增2),再将栈顶的字送入CS,SP再增2。若带立即数,则SP再加立即数。

第3题:

假设(SP)=1000H,执行PUSHF指令后,SP寄存器中的内容是

A.OFFFH

B.OFFEH

C.OFFDH

D.OFFCH


正确答案:B

第4题:

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


正确答案: 当调用程序为子程序提供一定的参数或参数的地址,这些参数是通过堆栈传递给子程序时;在子程序运行结束返回时,这些参数或参数地址已经没有在堆栈中保留的必要。因此,使用带参数的返回指令RET n,以便废弃一些CALL指令执行前入栈的参数。
设栈顶地址为4000H,当执行RET 0008H后,执行SP ← SP+n的操作,SP=4008H。

第5题:

假设(DS)=3000H,(SS)=3000H,(AX)=2000H,(BX)=1100H,(SI)=2,(DI)=1,(SP)=100H,(31200H)=40H。 请写出下列指令单独执行完后,有关寄存器和存储单元的内容。ADD AX,1000H


正确答案:(AX) =3000H

第6题:

假设由CALL指令调用的某子程序使用段内返回指令RET4,问该予程序执行到 RET4指令时( )实现返回操作?

A.返回到CALL指令下面一条指令继续执行主程序

B.按照(SP)和(SP+1)中存放的地址执行返回操作

C.按照(SP+4)和(SP+5)中存放的地址执行返回操作

D.返回到CALL指令下面第4条指令继续执行主程序


正确答案:B

第7题:

设SP=4AH,执行段内返回指令RET4后,SP的值是()。

  • A、44H
  • B、48H
  • C、4CH
  • D、50H

正确答案:D

第8题:

设SP=1110H,执行PUSHAX指令后,SP的内容为()

A、SP=1112H

B、SP=110EH

C、SP=1111H

D、SP=110FH


参考答案:B

第9题:

假设(DS)=3000H,(SS)=3000H,(AX)=2000H,(BX)=1100H,(SI)=2,(DI)=1,(SP)=100H,(31200H)=40H。 请写出下列指令单独执行完后,有关寄存器和存储单元的内容。DEC BYTE PTR [1200H]


正确答案: (31200H) =3FH

第10题:

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


正确答案:在某些情况下,执行返回指令后,往往需要自动修改堆栈指针,以便废弃一些CALL指令执行前入栈的参数。为了达到这一目的,RET指令可带一个操作数,其指令格式为RET N,其中N为一个偶数。当RET指令完成返回地址出栈后,还进一步执行(SP)←(SP)+N,从而实现了修改堆栈指针目的。
设堆栈顶为4000H,当执行RET 0008H后,如果是段内返回(SP)←(SP)+2+8=400AH;如果从段间返回,则(SP)←(SP)+4+8=400CH。