Javatpoint标志
Javatpoint标志

调用和跳转指令之间的区别

跳转指令是一种转移指令。在这条指令的帮助下,我们能够将信息从一个地方转移到另一个地方。如果我们正在运行一个程序,并且想要跳过某些梯级或逻辑,在这种情况下,JUMP指令将是有用的。返回的信息不会存储在JUMP指令中。

调用指令也是一种控制转移指令。在指令的帮助下,我们能够调用子程序。子例程包含一个指令块,需要经常执行。由于这一点,程序将更加结构化和节省大量的内存空间。当调用指令调用子例程并且子例程的执行完成时,控制将在受潮湿腐烂指令。

JUMP指令和CALL指令有很多不同之处,描述如下:

序列号。 跳转指令 调用指令
1 在JUMP中,我们只是分支到一个新位置,然后从那里继续。 在CALL中,我们将分支到一个称为子例程的新位置。当我们使用CALL指令时,子程序将被执行。当子程序完全执行完后,将把一条RET指令放入程序中,以便将返回的地址从堆栈中放入PC。
2 在JUMP指令中不强制初始化堆栈指针。 在CALL指令中必须初始化堆栈指针。
3. 在JUMP指令中,堆栈指针的值不会改变。 在CALL指令中,堆栈指针的值递减2。
4 return指令不包含after执行JUMP,因为它不需要返回到前一个位置。 我们使用CALL指令来调用子例程。在堆栈返回地址的帮助下,控制将通过RET指令在子程序的末尾转移回主程序。
5 JUMP指令不需要将返回地址存储到堆栈中。 在调用时,程序计数器的返回地址将被压入堆栈。
在执行RET指令时,返回地址将从堆栈中弹出并添加到程序计数器中。
6 JUMP指令不用于将程序计数器的值传输到堆栈中。 CALL指令用于将程序计数器的值转移到子程序中,以便它可以返回到主程序中。
7 在JUMP指令中有一种即时寻址模式。 在CALL指令中有寄存器寻址方式和立即寻址方式。
8 程序计数器被JUMP指令永久地改变。 该指令包含留在堆栈上的信息,以恢复原始程序执行的顺序。
9 在JUMP指令中,PC被转移到一个内存位置,这个位置是主程序的一部分。 在CALL指令中,PC被转移到一个内存位置,该位置不是主程序的一部分。
10 跳远有三种,即跳远、跳远和跳远。 呼叫有两种类型,即长期呼叫和绝对呼叫。
11 要执行JUMP指令,我们需要10个T状态。 为了执行CALL指令,我们需要18个T状态。
12 为了执行JUMP指令,我们还需要3个机器周期。 为了执行CALL指令,我们也需要5个机器周期。
13 JUMP指令被描述为条件跳转和无条件跳转。 CALL指令只被描述为无条件的。






Youtube 视频加入我们的Youtube频道:现在加入

反馈


帮助别人,请分享

脸谱网 推特 pinterest

学习最新教程


准备


热门的技术


b .技术/马华






Baidu
map