Stack in microprocessor 8085(presantation)
Upcoming SlideShare
Loading in...5

Stack in microprocessor 8085(presantation)






Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Stack in microprocessor 8085(presantation) Stack in microprocessor 8085(presantation) Presentation Transcript

  • Stack & Subroutines Company LOGO
  • The stack The stack is a group of memory location in the R/W memory that is used for temporary storage of binary information during the execution of a program The stack is a LIFO structure. – Last In First Out. The starting location of the stack is defined by loading a 16 bit address into the stack pointer that spaced is reserved, usually at the top of the memory 2
  • The stack The stack normally grows backwards into memory. The stack can be initialized anywhere in the user memory map , but stack is initialized at the highest memory location so that there will not be any interface with the program. In 8085 microprocessor system the beginning of the stack is defined in the program by using the instruction LXI SP,16 bit. The LXI SP,a 16 bit state that load the 16 bit address into the stack pointer 3
  • Information is stored and retrieved from the stack•The 8085 provide two instruction PUSH & POP for storing information on the stack and retrieving it back.•Information in the register pairs stored on the stack in reverseorder by using the instruction PUSH.• Information retrieved from the stack by using the instructionPOP.•PUSH & POP both instruction works with register pairs only.•The storage and retrieval of the content of registers on thestack fallows the LIFO(Last-In-First-Out) sequence.•Information in the stack location may not be destroyed untilnew information is stored in that memory 4
  • The PUSH Instruction2000 LXI SP,2099H Load the stack pointer register with the addre ss 2099.2003 LXI H ,42F2H Loads data in the HL register pair.2006 PUSH H The content of the HL register pair pushed int o stack.2007 DELAY COUNTER200F2010 POP H Saved data in stack pointer register to HL regi ster pair. 5
  • PUSH H The stack pointer is decremented by one to 2098 H , and the contents of the h register are copied to memory location 2098H. 8085 Register F A The stack pointer register is again B C E D decremented by one to 2097H,and H 42 F2 L SP 2097 the contents of the L register are Memory copied to memory location 2097H. The contents of the register pair F2 2097 42 2098 HL are not destroyed ; however X 2099 HL is made available for delay counter. Contents on the stack &in the register after the PUSH 6
  • POP H The contents of the top of the stack location shown by the stack pointer are copied in the L register and the stack pointer register is incremented by one to 2098 H. 8085 Register The contents of the top of the stack A B F C (now it is 2098H) are copied in the D E H 42 F2 L H register,and the stack pointer is SP 2099 incremented by one. MEMORY The contents of memory location F2 2097 2097H and 2098 are not destroyed 42 2098 until some other data bytes are X 2099 stored in these location. Contentsafterthe stack and in the registers on the POP 7
  • Operation of the stack During pushing, the stack operates in a “decrement then store” style. The stack pointer is decremented first, then the information is placed on the stack. During poping, the stack operates in a “use then increment” style. The information is retrieved from the top of the stack and then the pointer is incremented. The SP pointer always points to “the top of the stack’’ 8
  • PUSH PSW Register Pair  PUSH PSW (1 Byte Instruction) A Flag  Decrement SP  Copy the contents of 12 80 register A to the memory location pointed to by SP  Decrement SP  Copy the contents of Flag register to the memory FFFB FFFC location pointed to by SP FFFD 80 FFFE 12 9
  • Pop PSW Register Pair  POP PSW (1 Byte Instruction) A FLAG  Copy the contents of the 12 80 memory location pointed to by the SP to Flag register  Increment SP  Copy the contents of the FFFB memory location pointed to FFFC by the SP to register A FFFD 80 FFFE 12  Increment SP 10
  • Subroutines  A subroutine is group of instruction written sepa rately from the main program to perform a func tion that occurs repeatedly in the main program .  When a main program calls a subroutine the pro gram execution is transferred to the subroutine after the completion of the subroutine ,the prog ram execution returns to the main program.  The microprocessor uses the stack to store the r eturn address of the 11
  • Subroutines  The 8085 has two instructions for dealing with subroutines. – The CALL instruction is used to redirect program execution to the subroutine. – The RET instruction is used to return to t he main program at the end of the subro utine 12
  • The CALL instruction  CALL ,16 bit  Call subroutine in conditionally located at the memory address specified by the 16 bit operand.  This instruction places the address of the next instruction on the stack and transfer the program execution to the subroutine 13
  • The RET instruction  Return unconditionally from the subrouti ne.  This instruction locates the return addre ss on the top of the stack and transfers t he program execution back to the calling 14
  • General characteristics of CALL & RTE instruction 1. The CALL instructions are 3-byte instruc tion; the second byte specifies the low order byte ,and the third byte specifies the high order byte of the subroutine address. 2. The return instruction are 1-byte instruc tions. 3. A CALL instruction must be used in conjunction with a return instruction in the subroutine 15
  • Necessary steps to implement a subroutine  The stack pointer register must be initiali zed ,preferably at the highest memory lo cation of the R/W memory.  The call instruction should be used in the main program accompanied by the RET i nstruction in the 16
  • Conditional CALL and RTE Instructions  The 8085 supports conditional CALL and co nditional RTE instructions. – The same conditions used with conditional JUMP instructions can be used. – CC, call subroutine if Carry flag is set. – CNC, call subroutine if Carry flag is not set – RC, return from subroutine if Carry flag is set – RNC, return from subroutine if Carry flag is not 17
  • 18