Control Transfer or Branching Instruction
Control transfer instructions transfer the flow of execution of the program to a new address specified in the instruction indirectly or directly. When these types of instructions are executed, the CS register and IP registers get loaded with new values of CS and IP register equivalent to the location where the flow of execution is going to be transferred. Depending on the addressing modes, the CS register may/ may not be modified. These instructions are classified in 2 types:
1) Unconditional Control Transfer (Branch) Instructions:- In this case, the execution control is transferred to the specified location independent of any condition or status. The CS and IP register are unconditionally modified to the new CS and IP register.
2) Conditional Control Transfer (Branch) Instruction:- In this, the control is transferred to the specified location provided the result of the past operation satisfies a specific condition, or else, the execution continues in normal flow sequence. Condition code flags replicate the results of the past operations. In other term, by using this type of instruction the control will be transferred to specific specified location, if a specific flag satisfies the condition.