Program Control Instructions
Program Control Instructions
• Branch Instructions
• Procedure Call and Return Instructions
A program control instruction changes address value in the PC and hence the normal flow of execution.
• Change in PC causes a break in the execution of instructions.
• It is an important feature of the computers since it provides the control over the flow of the program and provides the capability to branch to different program segments.
Typical Program Control Instructions
• Branch (BR) and Jump (JMP) instructions are used sometimes interchangeably but, they are different.
• Branch and Jump instructions usually differ in addressing modes. • Usually Jump is used to refer to unconditional version of branch.
• Skip (SKP) instructions is used to skip one(next) instruction. It can be conditional or unconditional. It does not need an address field.
• In case of conditional skip instruction, the combination of conditional skip and a unconditional branch can be used an alternative of conditional branch. But, storing two instructions will take extra space.
• In skip instruction we increment the PC in execution stage, effectively incrementing it by 2.
SKP (skip if z=0 )
JMP $100
ADD R2,R1,R3
BRNZ $100
Typical Program Control Instructions
• Compare (CMP) instruction performs a comparison via a subtraction, with difference not retained.
• The comparison causes one of the three following operations a. A conditional Branch ( 3ree addresses [2 registers and 1 memory] ) b. Change in the contents of a register ( 3ree addresses) c. Sets or resets stored status bits (2 addresses), this type of instruction is usually followed by a branch instruction to conditionally check the status bit and perform a branch.
• Similarly test ( TEST) instructions performs the AND of two operands without retaining the result. • It also causes one the above three functions.
Conditional Branch Instructions
• A conditional branch instruction is a branch instruction that may or may not cause a transfer of control depending on the value of stored bits in the PSR (processor status register).
• Each conditional branch instruction tests a different combination of Status bits for a condition.
• If the condition is true, control is transferred to the effective address (PC←Add). If the condition is false, the program continues with the next instruction (PC←PC+1).
• Below is a list of Conditional Branch instructions, letter ‘N’ stands for NOT.
Conditional Branch Instructions
• ‘C’ represents the carry, or borrow after arithmetic addition or subtraction.
• ‘N’ represents the leftmost bit of the result of the operation i.e. sign bit.
• ‘V’ is for overflow i.e. if the sign of the result is changed (inverted).
• ‘Z’ is for zero i.e., to check whether the result of an operation is zero (Z=1) or not zero (Z=0).
Comparison Branch Instructions
• Some branch instructions are a combination of compare and conditional branch instructions. They are run after the compare instruction has performed the comparison and status bits are updated.
• Different status bits are checked for signed and unsigned numbers.
• Keep in mind that
• A≥B is complement of AB. That means if we know the condition of status bits for one, the condition for the other complementary relation is obtained by complement.
• Branch Instructions
• Procedure Call and Return Instructions
A program control instruction changes address value in the PC and hence the normal flow of execution.
• Change in PC causes a break in the execution of instructions.
• It is an important feature of the computers since it provides the control over the flow of the program and provides the capability to branch to different program segments.
Typical Program Control Instructions
• Branch (BR) and Jump (JMP) instructions are used sometimes interchangeably but, they are different.
• Branch and Jump instructions usually differ in addressing modes. • Usually Jump is used to refer to unconditional version of branch.
• Skip (SKP) instructions is used to skip one(next) instruction. It can be conditional or unconditional. It does not need an address field.
• In case of conditional skip instruction, the combination of conditional skip and a unconditional branch can be used an alternative of conditional branch. But, storing two instructions will take extra space.
• In skip instruction we increment the PC in execution stage, effectively incrementing it by 2.
SKP (skip if z=0 )
JMP $100
ADD R2,R1,R3
BRNZ $100
Typical Program Control Instructions
• Compare (CMP) instruction performs a comparison via a subtraction, with difference not retained.
• The comparison causes one of the three following operations a. A conditional Branch ( 3ree addresses [2 registers and 1 memory] ) b. Change in the contents of a register ( 3ree addresses) c. Sets or resets stored status bits (2 addresses), this type of instruction is usually followed by a branch instruction to conditionally check the status bit and perform a branch.
• Similarly test ( TEST) instructions performs the AND of two operands without retaining the result. • It also causes one the above three functions.
Conditional Branch Instructions
• A conditional branch instruction is a branch instruction that may or may not cause a transfer of control depending on the value of stored bits in the PSR (processor status register).
• Each conditional branch instruction tests a different combination of Status bits for a condition.
• If the condition is true, control is transferred to the effective address (PC←Add). If the condition is false, the program continues with the next instruction (PC←PC+1).
• Below is a list of Conditional Branch instructions, letter ‘N’ stands for NOT.
Conditional Branch Instructions
• ‘C’ represents the carry, or borrow after arithmetic addition or subtraction.
• ‘N’ represents the leftmost bit of the result of the operation i.e. sign bit.
• ‘V’ is for overflow i.e. if the sign of the result is changed (inverted).
• ‘Z’ is for zero i.e., to check whether the result of an operation is zero (Z=1) or not zero (Z=0).
Comparison Branch Instructions
• Some branch instructions are a combination of compare and conditional branch instructions. They are run after the compare instruction has performed the comparison and status bits are updated.
• Different status bits are checked for signed and unsigned numbers.
• Keep in mind that
• A≥B is complement of AB. That means if we know the condition of status bits for one, the condition for the other complementary relation is obtained by complement.
Comments
Post a Comment