Stack, Computer Engineering

Assignment Help:

The Stack

A procedure call is supported by a stack. So let's discuss stack in assembly. Stacks are 'Last In First Out' data structures and are used for storing return addresses of procedures and for parameter passing and saving the return value.

In 8086 microprocessor a stack is made in the stack segment. SS register stores the offset of stack segment whereas SP register stores the top of stack. A value is pushed in top of the stack or taken out (poped) from top of the stack. The stack segment may be initialized as below:   

STACK_ SEG SEGMENT STACK

            DW 100   DUP (0)

            TOS LABEL   WORD

STACK_SEG ENDS

 

CODE SEGMENT

ASSUME CS: CODE, SS: STACK_SEG

MOV   AX, STACK_SEG

MOV   SS, AX      ; initialise stack segment

LEA   SP, TOP      ; initialise stack pointer

CODE ENDS

END

The directive STACK_SEG SEGMENT STACK declares logical segment for stack segment. DW 100 DUP (0) assigns actual size of stack to 100 words. All locations of this stack are initialized to zero. Stacks are recognized by the stack top and so the Label Top of Stack (TOS) has been selected. Please consider that stack in 8086 is a WORD stack. Stack facilities include the use of indirect addressing by a special register, the stack pointer (SP). SP is decremented by itself as items are put on the stack and incremented as they are retrieved. Putting something on to stack is known as a PUSH and taking it off is known as a POP. The address of last element pushed on to stack is termed as the top of stack (TOS).

874_Stack.png


Related Discussions:- Stack

Define the state and instance of properties of object, Define the state and...

Define the state and instance of properties of object A state encompasses all properties of object along with values of each of these properties. An instance is a concr

Link your documents to site, Images in the top area of Compass home page gu...

Images in the top area of Compass home page guide visitors to specific pages on the site. Now you will add links for navigation buttons. You will see that there are some ways to

Why a function cannot call a task, Why a function can n ot call a task ...

Why a function can n ot call a task As functions doesn't consume time,it can do any operation which doesn't consume time. Mostly tasks are written that consumes time. So a ta

Input output in assembly program, Q. Input output in assembly program? ...

Q. Input output in assembly program? Software interrupt is a call to an Interrupt servicing program situated in the operating system. Generally the input-output routine in 8086

Basic idea - learning decision trees, Basic idea: However in the above...

Basic idea: However in the above decision of tree which it is significant that there the "parents visiting" node came on the top of the tree. Whether we don't know exactly the

Explain in detail about the dynamic timing, Explain in detail about the Dyn...

Explain in detail about the Dynamic timing a. Design is simulated in full timing mode. b. Not all possibilities tested, as it is dependent on input test vectors. c. Simul

Cg transformations, magnify a triangle a(0,0), b(1,1), c(5,2) twice its siz...

magnify a triangle a(0,0), b(1,1), c(5,2) twice its size hile keeping c as fix

show bank type , Describe an abstract class 'Bank' having abstract methods...

Describe an abstract class 'Bank' having abstract methods as 'CreateAccount' 'depositAmount' & 'withDrawAmount'.Add method definitions for 'CalculateInterest' and 'SetInterest' as

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