There are many differences between the JUMP instruction and CALL instructions, which are described as follows:
Serial No. |
JUMP Instruction |
CALL Instruction |
1 |
In 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. |
2 |
It is not mandatory to initialize the stack pointer in JUMP instruction. |
It is mandatory to initialize the stack pointer in CALL instruction. |
3 |
In 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. |
4 |
The 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. |
5 |
The 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.
|
6 |
The 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. |
7 |
There is an immediate addressing mode in JUMP instruction. |
There is a register addressing mode and immediate addressing mode in CALL instruction. |
8 |
The 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. |
9 |
In 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. |
10 |
There 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. |
11 |
To execute the JUMP instruction, we require the 10 T states. |
To execute the CALL instruction, we require the 18 T states. |
12 |
To execute the JUMP instruction, we also require the 3 machine cycles. |
To execute the CALL instruction, we also require 5 machine cycles. |
13 |
The JUMP instruction is described as conditional jump and unconditional jump. |
The CALL instruction is described only as unconditional. |