Difference between CALL and JUMP instructions Last Updated : 11 Jul, 2025 Comments Improve Suggest changes Like Article Like Report In assembly language as well as in low level programming CALL and JUMP are the two major control transfer instructions. Both instructions enable a program to go to different other parts of the code but both are different. CALL is mostly used to direct calls to subroutine or a function and regresses to the main program after function call only. On the other hand, JUMP cause the control to jump to another part of code and does not return. CALL and JUMP you need to understand well especially when operating at low levels and the optimizations to the control flow of a program.What is CALL Instruction?The CALL instruction involves in calling up a subroutine or a function used in assembly language. During CALL, the address of the instruction after the CALL instruction is stored on the stack since after a subroutine has been executed, the control flows back to the main program. This feature makes CALL suitable in areas, where a given line of code can be run several times for instance in function calls.Advantages of CALL InstructionCode Reusability: The CALL instruction is used to call subroutines thus making the codes reusable. This eliminates repetition, and has the added benefits of making the overall structure of the program easier to develop.Ease of Maintenance: It is easy to alter the program because the same subroutine is used many times. Any modifications that are done in the subroutine are implemented wherever its CALL instruction is employed.Program Control: CALL allows to come back to the point of the program where execution was interrupted with less interruptions, more controlled and less random program flow.Disadvantages of CALL InstructionPerformance Overhead: The CALL instruction also include pushing the address of the next instruction to the stack which is not serious but may cause some performance degrade in cases where time is of high essence.Stack Management: Various problems such as stack overflow or memory problems can occur because of improper stack management (wrong disposing of a call, for example).What is JUMP Instruction?The unconditioned branch instruction is called the JUMP or JMP for short where it is able to transfer control to a different part of the program. Like CALL, after JUMP executes the jump the program moves to the target address, the only difference is that there are no RETURN information needed to return back to the starting point. Basically, JUMP is utilized to do branching operations within the given code or to omit instructions liking certain code further.Advantages of JUMP InstructionEfficiency: This implies that JUMP instructions are usually faster than CALL instructions since the latter necessitate the saving and managing of return addresses.Simpler Control Flow: For loops, conditions, and for exiting some parts of the code without coming back are best suited to be used in JUMP.Lower Overhead: In this way, unlike in the case of CALL, no return address is pushed on the stack, and, therefore, JUMP has lesser overhead.Disadvantages of JUMP InstructionNo Return Mechanism: There are no means to go back to the position where the JUMP instruction was executed which may prove problematic in some cases especially when one is debugging.Risk of Unstructured Code: This is especially because the use of JUMP instructions in a program’s code can result in generation of what is known as spaghetti code.SERIAL NO.JUMPCALL1.Program control is transferred to a memory location which is in the main programProgram Control is transferred to a memory location which is not a part of main program2.Immediate Addressing ModeImmediate Addressing Mode + Register Indirect Addressing Mode3.Initialization of SP(Stack Pointer) is not mandatoryInitialization of SP(Stack Pointer) is mandatory4.Value of Program Counter(PC) is not transferred to stackValue of Program Counter(PC) is transferred to stack5.After JUMP, there is no return instructionAfter CALL, there is a return instruction6.Value of SP does not changesValue of SP is decremented by 27.10 T states are required to execute this instruction18 T states are required to execute this instruction8.3 Machine cycles are required to execute this instruction5 Machine cycles are required to execute this instructionConclusionThe CALL and JUMP statements are used commonly in the Assembly language to control flow of programs, though they exhibit different functionalities. CALL is used for calling subroutines with the option or privilege of the get back to the main program while JUMPs pass control unconditionally to other part without return. CALL is more rigid yet it incorporates code reuse as compared to JUMP that is highly optimized especially to work with small SCPs but lacks backtrack mechanism. Orientation in the applicative need can make the difference of using CALL and JUMP in effectivity and maintainability of the code. Comment More infoAdvertise with us H harshit-chhabra Follow Improve Article Tags : Computer Organization & Architecture system-programming microprocessor Explore Basic Computer InstructionsWhat is a Computer? 8 min read Issues in Computer Design 1 min read Difference between assembly language and high level language 2 min read Addressing Modes in 8086 7 min read Difference between Memory based and Register based Addressing Modes 4 min read Von Neumann Architecture 6 min read Harvard Architecture 3 min read Interaction of a Program with Hardware 3 min read Simplified Instructional Computer (SIC) 4 min read Instruction Set used in simplified instructional Computer (SIC) 1 min read Instruction Set used in SIC/XE 2 min read RISC vs CISC 4 min read Vector processor classification 5 min read Essential Registers for Instruction Execution 3 min read Introduction of Single Accumulator based CPU organization 2 min read Stack based CPU Organization 4 min read Machine Control Instructions in Microprocessor 4 min read Very Long Instruction Word (VLIW) Architecture 4 min read Input and Output SystemsComputer Organization | Different Instruction Cycles 11 min read Machine Instructions 5 min read Instruction Formats 6 min read Difference between 2-address instruction and 1-address instructions 4 min read Difference between 3-address instruction and 0-address instruction 4 min read Register content and Flag status after Instructions 3 min read Debugging a machine level program 3 min read Vector Instruction Format in Vector Processors 7 min read Vector Instruction Types 4 min read Instruction Design and FormatIntroduction of ALU and Data Path 8 min read Computer Arithmetic | Set - 1 5 min read Computer Arithmetic | Set - 2 4 min read Difference Between 1's Complement Representation and 2's Complement Representation Technique 5 min read Restoring Division Algorithm For Unsigned Integer 5 min read Non-Restoring Division For Unsigned Integer 4 min read Computer Organization | Booth's Algorithm 7 min read How the Negative Numbers are Stored in Memory? 2 min read Microprogrammed ControlMicro-Operation 2 min read Microarchitecture and Instruction Set Architecture 5 min read Types of Program Control Instructions 6 min read Difference between CALL and JUMP instructions 5 min read Hardwired and Micro-programmed Control Unit 3 min read Implementation of Micro Instructions Sequencer 4 min read Performance of Computer in Computer Organization 5 min read Introduction to Control Unit and its Design 4 min read Computer Organization | Amdahl's law and its proof 2 min read Subroutine, Subroutine nesting and Stack memory 5 min read Different Types of RAM (Random Access Memory ) 8 min read Random Access Memory (RAM) and Read Only Memory (ROM) 8 min read 2D and 2.5D Memory organization 4 min read Input and Output OrganizationPriority Interrupts | (S/W Polling and Daisy Chaining) 5 min read I/O Interface (Interrupt and DMA Mode) 4 min read Direct memory access with DMA controller 8257/8237 3 min read Computer Organization | Asynchronous input output synchronization 7 min read Programmable peripheral interface 8255 4 min read Synchronous Data Transfer in Computer Organization 4 min read Introduction of Input-Output Processor 5 min read MPU Communication in Computer Organization 4 min read Memory Mapped I/O and Isolated I/O 5 min read Memory OrganizationIntroduction to memory and memory units 4 min read Memory Hierarchy Design and its Characteristics 6 min read Register Allocations in Code Generation 6 min read Cache Memory 5 min read Cache Organization | Set 1 (Introduction) 3 min read Multilevel Cache Organisation 6 min read Difference between RAM and ROM 7 min read Difference Between CPU Cache and TLB 4 min read Introduction to Solid-State Drive (SSD) 4 min read Read and Write operations in Memory 3 min read PipeliningInstruction Level Parallelism 5 min read Computer Organization and Architecture | Pipelining | Set 1 (Execution, Stages and Throughput) 9 min read Computer Organization and Architecture | Pipelining | Set 3 (Types and Stalling) 3 min read Computer Organization and Architecture | Pipelining | Set 2 (Dependencies and Data Hazard) 6 min read Last Minute Notes Computer Organization 15+ min read Like