8.EEE 342 08 Stack Programming
8.EEE 342 08 Stack Programming
Interfacing
EEE 342
Stack and Stack Programming
◼ Outline
❑ Stack
❑ Stack Programming in assembly language
(1) STACK
POINTER
DECREMENTS SP & STORES HIGHER
BYTE
DH DL 2002H
SP 0800
SS 0300 03000
STACK segment
EENG4005
Pop
◼ Destination can be register, segment register or memory.
◼ This instruction pops (takes) the contents of specified
destination.
◼ In this stack pointer is incremented by 2.
◼ The lower byte data is popped first (SP+1).
◼ Then higher byte data is popped (SP+2).
❑ E.g.
❑ (1). POP AX;
❑ (2). POP DS;
❑ (3). POP [5000H];
INCREMENTS SP
LOWER BYTE
HIGHER BYTE
(3) STACK
POINTER
Saturday, April 27, 2019 14
Pop
BEFORE EXECUTION
2000H 30
SP 2000H
2001H 50
BH BL
2002H
POP BX
AFTER EXECUTION
2000H 30
SP 2002H
2001H 50
BH 50 BL 30
2002H
SP 1006
SS 0000 00000
STACK segment
EENG4005
Stack Programming
◼ Mov DX,4000H
◼ Mov SS,Dx
◼ Mov SP,0200H
◼ MOV BX, 4510H
◼ PUSH BX
◼ Mov BX, 0ABH,
◼ Mov AX, SS:[1FFH]
◼ AX = 0045H
Example
◼ Suppose SS = 4000H, SP = 0200H. For the following given Code