Uploaded by pugojulia400

8086 Assembly: Stack Operations (PUSH, POP)

advertisement
Assume the following register contents:
AX = 4A30H BP = 0008H CS = 8000H
BX = 0010H SP = 0040H DS = 8000H
CX = 1800H DI = 0006H SS = 8002H
DX = 1234H SI = 0040H ES = 9000H
\\Bottom of the Stack = SS x 10H + FFFFH
= 80020H + FFFFH
= 9001FH
Stack Segment = 80020H up to 9001FH
Top of the Stack = SS x 10H + SP
= 8002H + 0040H
= 8042H
\\PUSH CX; 8041H
8040H
NEW SP =
(CH) = 18H
(CL) = 00H
SP – 2
= 0040H – 2H
= 003EH
New Top of Stack = 8040H
\\PUSH BX; 803FH (BH) = 00H
803EH (BL) = 10H
NEW SP =
SP – 2
= 003EH – 2H
= 003CH
New Top of Stack = 803EH
\\PUSH DX; 803DH
803CH
NEW SP =
(DH) = 12H
(DL) = 34H
SP – 2
= 003CH – 2H
= 003AH
New Top of Stack = 803CH
\\POP BX; BL
(80060H)
BH
NEW SP =
(80061H)
SP + 2
= 0040H + 2H
= 0042H
New top of Stack = 80062H
\\POP BP; BP
BP
NEW SP =
(80062H)
(80063H)
SP + 2
= 0042H + 2H
= 0044H
New top of Stack = 80064H
\\POP SI; SI
SI
NEW SP =
(80062H)
(80063H)
SP + 2
= 0044H + 2H
= 0046H
New top of Stack = 80066H
Download