Page 161 - DCAP210_INTRODUCTION__TO_MICROPROCESSORS
P. 161
Unit 11: Counters and Time Delays
In figure, the PC value is either loaded with an updated version of itself, or else it is loaded with Notes
a new Branch Address. For simplification we do not show the control signals to the MUX.
11.2.2 Offset Branching
An offset branch is a branch where a value is added (or subtracted) to the current PC value to
produce the new value. This is typically used in systems where the PC value is larger then a
register value or an immediate value, and it is not possible to load a complete value into the PC.
Figure 11.4: Offset Branching
In figure, there is a second ALU unit. Notice that we could simplify this circuit and remove the
second ALU unit if we use the configuration mentioned in Figure 11.5:
Figure 11.5: ALU Configuration
These are just two possible configurations for this circuit.
Offset branch is used to support reloadable binaries which may be loaded at
an arbitrary base address.
11.2.3 Offset and Non-Offset Branching
Many systems have capabilities to use both offset and non-offset branching. Some systems may
differentiate between the two as “far jump” and “near jump”, respectively, although this
terminology is archaic.
LOVELY PROFESSIONAL UNIVERSITY 155