Home ยป Difference between Call and Jump Instructions

Difference between Call and Jump Instructions

by

Difference between Call and Jump Instructions

The Jump instruction is a type of transfer instruction. With the help of this instruction, we are able to transfer the information from one location to another location. If we are running a program and want to skip some part of rungs or logic, in this case, JUMP instruction will be useful. The returned information will not be stored in the JUMP instruction.

The CALL instruction is also a type of control transfer instruction. With the help of instruction, we are able to invoke the subroutine. A block of instructions is contained by the subroutine, which needs to be frequently executed. Due to this, the program will be more structural and save a lot of memory space. When the call instruction calls the subroutine and the execution of a subroutine is completed, the control will be transferred back to the caller with the help of RET instruction.

There are many differences between the JUMP instruction and CALL instructions, which are described as follows:

Serial No.JUMP InstructionCALL Instruction
1In the JUMP, we simply branch to a new location and then continue from there.In the CALL, we branch to a new location which is known as the subroutine. When we use the CALL instruction, the subroutine will be executed. When the subroutine is fully executed, a RET instruction will be put into our program so that the returned address will be put into the PC from the stack.
2It is not mandatory to initialize the stack pointer in JUMP instruction.It is mandatory to initialize the stack pointer in CALL instruction.
3In the JUMP instruction, the value of a stack pointer does not change.In the CALL instruction, the value of a stack pointer is decremented by 2.
4The return instruction does not contain after executing the JUMP because it does not require to return to the previous location.We use the CALL instruction so that we can invoke the subroutine. With the help of a return address of the stack, the control will be transferred back to the main program at the end of a subroutine by the RET instruction.
5The JUMP instruction does not require to store the return address into the stack. At the time of CALL, the return address of a program counter will be pushed into the stack.
At the time of RET instruction, the return address will be popped from the stack and added to the program counter.
6The JUMP instruction is not used to transfer the value of a program counter into the stack.The CALL instruction is used to transfer the value of a program counter into a subroutine so that it can come back to the main program.
7There is an immediate addressing mode in JUMP instruction.There is a register addressing mode and immediate addressing mode in CALL instruction.
8The program counter is permanently changed by the JUMP instruction.This instruction contains the information which is left on the stack to resume the sequence of original program execution.
9In the JUMP instruction, the PC is transferred into a memory location, and that location is a part of the main program.In the CALL instruction, the PC is transferred into a memory location, and that location is not a part of the main program.
10There are three types of JUMP, i.e., Long jump, Short jump, and Absolute jump.There are two types of CALL, i.e., Long call, Absolute call.
11To execute the JUMP instruction, we require the 10 T states.To execute the CALL instruction, we require the 18 T states.
12To execute the JUMP instruction, we also require the 3 machine cycles.To execute the CALL instruction, we also require 5 machine cycles.
13The JUMP instruction is described as conditional jump and unconditional jump.The CALL instruction is described only as unconditional.

You may also like