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