MICROPROCESSOR 8085
LECTURE 16
PROGRAMMING EXAMPLE-VII
STACK & SUBROUTINE
PROF. SANDIP DAS
STACK
AA
33
2F
0001
0000
0003
0002
0004
0005
0006
0007
0008
0009
2000 LXI SP
0009
SP=0009
2003 LXI H
2F332006 PUSH H
PC=2000
PC=2003
PC=2006
When PUSH instruction is
executed
1. SP will be decremented by
1
2. H will be inserted into the
memory location pointed
by stack pointer
3. Again SP will be
decremented by 1
4. L will be inserted into the
new memory location
pointed by SP
SP=0008
SP=0007
H L
2F 33
EXAMPLE OF PUSH INSTRUCTION
STACK
AA
33
2F
0001
0000
0003
0002
0004
0005
0006
0007
0008
0009
2000 LXI SP
0009
SP=0009
2003 LXI H
2F332006 PUSH H
PC=2000
PC=2003
PC=2006
SP=0008
SP=0007
EXAMPLE OF POP INSTRUCTION
2007 POP B PC=2007
B
2F
C
33
SUBROUTI
NE
Memory address Mnemonics, operands
2000 LXI SP,20CD H
2003 LXI H,0108 H
2006 MVI B,0F H
2008 CALL 2060 H
200B DCR B
2060 PUSH H
2061 PUSH B
2062 MVI B,05H
2065 POP H
2066 POP B
2067 RET
0F
CB
08
01
STACK
20CD SP=20CD
REGISTE
R
B C H
0F
L
08
2000
2006
2003
2008
2060
2062
2061
2065
MAIN
MEMORY
SUBROUTINE
2066
2067
200B
20CC
20CB
20CA
00 01 080F 05 01

13. 8085 programming example v