Uploaded by Manjesh RK

INSTRUCTION EXECUTION AND STRAIGHT LINE SEQUENCING-BRANCHING

advertisement
BRANCHING
 We now introduce branch instructions.
 This type of instruction loads a new address into the
program counter.
 As a result, the processor fetches and executes the
instruction.
 At this new address, called the branch target, instead of the
instruction at the location that follows the branch
instruction in sequential address order.
 A conditional branch instruction causes a branch only if a
specified condition is satisfied. If the condition is not
satisfied, the PC is incremented in the normal way, and the
next instruction in sequential address order is fetched and
executed.
Branching
i
Move
NUM1,R0
i+4
Add
NUM2,R0
i+8
Add
NUM3,R0
•
•
•
i + 4n - 4
Add
NUMn,R0
i + 4n
Move
R0,SUM
•
•
•
SUM
NUM1
NUM2
•
•
•
NUMn
A straight-line program for adding n numbers.
Branching
Move
N,R1
Clear
R0
LOOP
Determine address of
"Next" number and add
"Next" number to R0
Program
loop
Decrement R1
Branch target
Branch>0
LOOP
Move
R0,SUM
Conditional branch
•
•
•
SUM
N
n
NUM1
NUM2
•
•
•
NUMn
 Using a loop to add
n numbers.
 Consider the task of adding a list of n numbers.
 The addresses of the memory locations containing the n




numbers are symbolically given as NUM1, NUM2…. NUMn.
Separate Load and Add instructions are used to add each
number to the contents of register R2.
After all the numbers have been added, the result is placed
in memory location SUM.
Instead of using a long list of Load and Add instruction it
is possible to implement a program loop in which the
instructions read the next number in the list and add it to
the current sum.
To add all numbers, the loop has to be executed as many
times as there are numbers in the list.
THANK YOU
Download