0% found this document useful (0 votes)
68 views25 pages

Chapter 04: Instruction Sets and The Processor Organizations

Subroutine in 8085

Uploaded by

Riddhi Desai
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
68 views25 pages

Chapter 04: Instruction Sets and The Processor Organizations

Subroutine in 8085

Uploaded by

Riddhi Desai
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

Chapter 04: Instruction Sets and the

Processor organizations

Lesson 13
Subroutine Nesting Using Stacks to
Implement Subroutine Calls

Schaum’s Outline of Theory and Problems of Computer Architecture 1


Copyright © The McGraw-Hill Companies Inc. Indian Special Edition 2009
Objective

• To understand call and return


• Nested calls

Schaum’s Outline of Theory and Problems of Computer Architecture 2


Copyright © The McGraw-Hill Companies Inc. Indian Special Edition 2009
Subroutine

Schaum’s Outline of Theory and Problems of Computer Architecture 3


Copyright © The McGraw-Hill Companies Inc. Indian Special Edition 2009
Subroutine

• Also called a routine


• A set of instructions or sub-program provided
for a specific purpose

Schaum’s Outline of Theory and Problems of Computer Architecture 4


Copyright © The McGraw-Hill Companies Inc. Indian Special Edition 2009
Examples of Subroutine programs

• Delay according to some parameter and the


parameter passed as input to the routine
• Cube of a parameter and the parameter passed as
input to the routine
• Sum of N- numbers in a table with the values of
N and table start-address passed as inputs to the
routine

Schaum’s Outline of Theory and Problems of Computer Architecture 5


Copyright © The McGraw-Hill Companies Inc. Indian Special Edition 2009
Return instruction

• A program calls the subroutine by an instruction


CALL
• At the last instruction in the subroutine, there is
RET instruction for return to the calling program

Schaum’s Outline of Theory and Problems of Computer Architecture 6


Copyright © The McGraw-Hill Companies Inc. Indian Special Edition 2009
Subroutine related instructions in
instruction set

Schaum’s Outline of Theory and Problems of Computer Architecture 7


Copyright © The McGraw-Hill Companies Inc. Indian Special Edition 2009
Subroutine CALL and RET instructions

Schaum’s Outline of Theory and Problems of Computer Architecture 8


Copyright © The McGraw-Hill Companies Inc. Indian Special Edition 2009
Sequence of program instructions at StepK of
a program
• StepK: (instruction k);
• (instruction k + 1);
• (instruction k + 2);
• CALL SBR_X;
• .
• StepL: SBR_X: (instruction l)
• . .
• ; PC for StepL saves at stack-top or LR
and PC gets the address of SBR_X after the CALL
instruction
Schaum’s Outline of Theory and Problems of Computer Architecture 9
Copyright © The McGraw-Hill Companies Inc. Indian Special Edition 2009
Sequence of program instructions at SBR_X
routine (a sub-program)
• SBR_X: (instruction l)
• .
• .
• RET
• ; PC gets the address for StepL from
the stack-top or from the LR after the execution
of RET instruction

Schaum’s Outline of Theory and Problems of Computer Architecture 10


Copyright © The McGraw-Hill Companies Inc. Indian Special Edition 2009
Example of Subroutines and their call from
a main program

Schaum’s Outline of Theory and Problems of Computer Architecture 11


Copyright © The McGraw-Hill Companies Inc. Indian Special Edition 2009
Main program sequence of instructions and
call for subroutine f ( ) in Step 1

Schaum’s Outline of Theory and Problems of Computer Architecture 12


Copyright © The McGraw-Hill Companies Inc. Indian Special Edition 2009
Main program sequence of instructions and
call for subroutine g ( ) in Step 2

Schaum’s Outline of Theory and Problems of Computer Architecture 13


Copyright © The McGraw-Hill Companies Inc. Indian Special Edition 2009
Sequence of instructions in subroutine f ( )
and RET at the end

Schaum’s Outline of Theory and Problems of Computer Architecture 14


Copyright © The McGraw-Hill Companies Inc. Indian Special Edition 2009
Sequence of instructions in subroutine g ( )
and RET at the end

Schaum’s Outline of Theory and Problems of Computer Architecture 15


Copyright © The McGraw-Hill Companies Inc. Indian Special Edition 2009
Passing of the Parameters and Reference to
parameters to Subroutine on call

Schaum’s Outline of Theory and Problems of Computer Architecture 16


Copyright © The McGraw-Hill Companies Inc. Indian Special Edition 2009
Parameter passing though registers

• Efficient
• But when the number of parameters (input and
output) is too large, the number of registers at
the processor may not be enough
• Parameter can be passed from one routine to
another by passing by values as well as by
references

Schaum’s Outline of Theory and Problems of Computer Architecture 17


Copyright © The McGraw-Hill Companies Inc. Indian Special Edition 2009
Parameters and reference in the example

• r0, r2, r3 and r4 are variables that are passed to


subroutine B by the values
• Main program passes pointer 4 at r1

Schaum’s Outline of Theory and Problems of Computer Architecture 18


Copyright © The McGraw-Hill Companies Inc. Indian Special Edition 2009
Passing of the Parameters

• Main program passes to subroutine f() the input


variables 2 and 3
• Main program passes to subroutine g() the input
variables 1, 2, 3 and 5 through r4, r3, r2 and r0,
respectively
• g() passes the results through r2 and r3 when it
calls f()

Schaum’s Outline of Theory and Problems of Computer Architecture 19


Copyright © The McGraw-Hill Companies Inc. Indian Special Edition 2009
Passing of the reference to Parameters

• r1 is a pointer and it thus passes memory


reference address to subroutine A

Schaum’s Outline of Theory and Problems of Computer Architecture 20


Copyright © The McGraw-Hill Companies Inc. Indian Special Edition 2009
Nesting of Subroutine calls

Schaum’s Outline of Theory and Problems of Computer Architecture 21


Copyright © The McGraw-Hill Companies Inc. Indian Special Edition 2009
Nesting of calls

• A subroutine calling one subroutine and that


calling another before the Return
• For example, Main program calls subroutine B
and Subroutine B calls subroutine A before
return
• Since PC always saves at top of the stack the
return is always to the calling routine

Schaum’s Outline of Theory and Problems of Computer Architecture 22


Copyright © The McGraw-Hill Companies Inc. Indian Special Edition 2009
Summary
We learnt
• Subroutine call by CALL instruction
• Return by RET instruction
• PC saves on call at stack top or link register
• PC returns back from stack top or link registers
• Parameters are passed by value or references to
parameters
• Nesting of calls
End of Lesson 13 on
Subroutine Nesting Using Stacks to
Implement Subroutine Calls

You might also like