Explain call and return statements, Computer Engineering

Assignment Help:

Q. Explain Call and Return Statements?

CALL:

      CALL X    Procedure Call to procedure/function named X

  CALL instruction causes the following to happen: 

1.  Decrement the stack pointer so that we won't overwrite last thing put on stack

(SP <---SP - 1)

901_Call and Return Statements.png

Figure: Call and Return Statements

2.  The contents of PC that is pointing to NEXT instruction the one just after CALL is pushed onto stack and M [SP] <--- PC.

3.  JMP to X address of the start of subprogram is put in PC register.This is all a jump does. So we go off to the subprogram though we have to remember where we were in calling program which means that we should remember where we came from so that we can get back there again. 

PC <--- X 

RETN:

RETN      Return from procedure.   

RETN instruction causes following to happen: 

1.  Pops the stack to produce an address/label.If correctly used, the top of the stack will comprise the address of next instruction after the call from that we are returning; it's this instruction with that we want to resume in calling program.

2.  Jump to popped address it implies that put the address into PC register.

 PC <---  top of stack value; Increment SP.


Related Discussions:- Explain call and return statements

An example of load-store optimization using expression trees, Give LOAD-STO...

Give LOAD-STORE optimization based on expression trees for the expression (A+B)/(C-D). LOAD-STORE optimization based on expression trees for the expression (A+B)/(C-D) is given

Registers used in organisation of an associative memory, In the organisatio...

In the organisation of an associative memory, many registers are used: Comparand Register (C): This register is used to grasp the operands, which are being searched for, or

Authentication system differ from a firewall in functioning, How does an au...

How does an authentication system differ from a firewall in functioning?   Authentication vs. firewall User Authentication and Authorization A significant advanced fi

Convert number to hexadecimal and decimal, Perform the following calculatio...

Perform the following calculations assuming that all numbers are stored in 16-bit registers as 2's complement binary numbers with no overflow provision. Convert each of the numbers

What is tri-state logic, Three Logic Levels are used and they are High, Low...

Three Logic Levels are used and they are High, Low, High impedance state. The high and low are normal logic levels & high impedance state is electrical open circuit conditions. Tri

Show the spawned program, Q. Show the spawned program? include "pvm3.h"...

Q. Show the spawned program? include "pvm3.h"  main() {    int ptid, msgtag;    char buf[100];    ptid = pvm_parent();    strcpy(buf, "hello, world from ");

Define virtual memory, Normal 0 false false false EN-IN...

Normal 0 false false false EN-IN X-NONE X-NONE MicrosoftInternetExplorer4

Calculate switching capacity in a two stage network, In a two stage network...

In a two stage network there are 512 inlets and outlets, r=s=24. If the probability that a given inlet is active is 0.8, calculate: Switching capacity Given: N =M =512, α

Name the software required to run video conferencing, Name The software req...

Name The software required to run video conferencing The software and hardware required to run video conferencing is very sophisticated. Apart from obvious items (that is large

Initialize new pvm processes, Q. Initialize new PVM processes? pvm_spa...

Q. Initialize new PVM processes? pvm_spawn( char *task, char **argv, int flag, char *where, int ntask, int *tids ) Initialize new PVM processes. Task a character st

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd