source: bootcd/isolinux/syslinux-6.03/core/stack.inc

Last change on this file was e16e8f2, checked in by Edwin Eefting <edwin@datux.nl>, 3 years ago

bootstuff

  • Property mode set to 100644
File size: 1.2 KB
Line 
1; -----------------------------------------------------------------------
2;
3;   Copyright 2005-2008 H. Peter Anvin - All Rights Reserved
4;   Copyright 2009-2010 Intel Corporation; author: H. Peter Anvin
5;
6;   This program is free software; you can redistribute it and/or modify
7;   it under the terms of the GNU General Public License as published by
8;   the Free Software Foundation, Inc., 53 Temple Place Ste 330,
9;   Boston MA 02111-1307, USA; either version 2 of the License, or
10;   (at your option) any later version; incorporated herein by reference.
11;
12; -----------------------------------------------------------------------
13
14;
15; stack.inc
16;
17; How to reset the stack pointer
18;
19
20%ifndef _STACK_INC
21%define _STACK_INC
22
23;
24; This macro resets the stack pointer (including SS), and sets
25; DS == ES == 0, interrupts on, DF = 0.
26;
27; It takes a 16-bit register that can be safely clobbered as parameter.
28;
29%macro RESET_STACK_AND_SEGS 1
30                xor %1,%1
31                mov ds,%1
32                mov es,%1
33                lss esp,[BaseStack]
34                mov dword [PMESP],__stack_end   ; Reset PM stack
35                sti
36                cld
37%endmacro
38
39                section .data16
40                alignz 4
41                global BaseStack:data hidden
42BaseStack       dd StackHome            ; ESP of the "home" stack pointer
43                dw 0                    ; SS of the "home" stack pointer
44
45                section .text16
46
47%endif ; _STACK_INC
Note: See TracBrowser for help on using the repository browser.