简答题

写出ACALL和LCALL两个调用指令的调用范围,试写出这两条指令执行时,CPU的操作过程。

正确答案

ACALL的调用范围是包括调用指令下一条指令的第一个字节所在的2KB范围的程序存储器空间。
ACALL调用指令的执行过程是:PC加2(本指令代码为两个字节获得下一条指令的地址,并把该断点地址(当前的PC值入栈,然后将断点地址的高五位与11位目标地址(指令代码第一字节的高3位,以及第二字节的八位连接构成16位的子程序入口地址,使程序转向子程序。调用子程序的入口地址和ACALL指令的下一条指令的地址,其高五位必须相同。因此子程序的入口地址和ACALL指令下一条指令的第一个字节必须在同一个2KB范围的程序存储器空间内。
LCALL调用指令的目标地址以16位给出,允许子程序放在64KB空间的任何地方。
指令的执行过程是把PC加上本指令代码数(三个字节获得下一条指令的地址,并把该断点地址入栈(断点地址保护,接着将被调子程序的入口地址(16位目标地址装入PC,然后从该入口地址开始执行子程序。

答案解析

相似试题
  • 为完成实现子程序调用,ACALL addr11指令要完成什么样的操作?

    简答题查看答案

  • 假定堆栈指针SP的值为37H,执行LCALL指令后,SP的值为()

    单选题查看答案

  • 指令LCALL 37B0H,首地址在2000H,所完成的操作是()入栈,PC=()。

    填空题查看答案

  • 8031单片机响应中断后,产生长调用指令LCALL,执行该指令的过程包括:首先把()的内容压入堆栈,以进行断点保护,然后把长调用指令的16位地址送(),使程序执行转向()中的中断地址区。

    填空题查看答案

  • 响应中断后,产生长调用指令LCALL,执行该指令的过程包括:首先把程序计数器PC的内容压入堆栈,以进行(),然后把长调用指令的16位地址送PC,使程序执行转向()中的中断地址区。

    填空题查看答案

  • 下列调用和返回指令中,属于有条件调用与返回的指令是()

    单选题查看答案

  • S7-200系列PLC的子程序调用指令和子程序条件返回指令分别是()。

    单选题查看答案

  • 编程时,一般在中断服务子程序和调用子程序中需用保护和恢复现场,保护现场用PUSH指令,恢复现场用()指令。

    填空题查看答案

  • 下列三个指令中,()表示子程序调用。

    单选题查看答案