ABSTRACT

The software development process effectively translates the desired task to a cor-

responding explicit set of instructions that can be executed by the processor. The

development of software program would have been straightforward, provided the de-

sired task has been a contiguous sequence of instructions. However, it is highly un-

likely to have such software programs appear in real-life applications. Rather a user

program of moderate complexity will involve decision making, conditional execution,

calling subtasks or functions as well as executing multiple tasks sequentially using

time multiplexing. To handle these complexities associated with the real-life software

programs, the processor architecture supports branch and control instructions. These

instructions allow the software developer to control the flow of program execution at

will.