2 ; -----------------------------------------------------------------------
4 ; Copyright 1994-2004 H. Peter Anvin - All Rights Reserved
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 ; Bostom MA 02111-1307, USA; either version 2 of the License, or
10 ; (at your option) any later version; incorporated herein by reference.
12 ; -----------------------------------------------------------------------
17 ; Memory layout of segments
21 ; Memory below 0800h is reserved for the BIOS and the MBR.
24 ; Text starts at the load address of 07C00h.
27 ; The secondary BSS section, above the text; we really wish we could
28 ; just make it follow .bcopy32 or hang off the end,
29 ; but it doesn't seem to work that way.
30 LATEBSS_START equ 0B000h
32 ; Reserve memory for the stack. This causes checkov to abort the
33 ; compile if we violate this space.
35 STACK_START equ TEXT_START-STACK_SIZE
42 ; The various sections and their relationship
46 ; NASM BUG: refers to hacks to handle NASM 0.98.38 bugs; might need
47 ; conditional compilation
49 section .earlybss nobits start=BSS_START
50 section .bcopy32 align=4 valign=16 follows=.data vfollows=.earlybss
51 ; NASM BUG: follows= here should be vfollows=
52 section .bss nobits align=256 follows=.bcopy32
54 section .text start=TEXT_START
55 ; NASM BUG: follows=.text not accepted here
56 section .data align=16 ; follows=.text
58 ; NASM BUG: We would like to do follows=.bcopy32
59 section .latebss nobits align=16 start=LATEBSS_START
61 ; Reserve space for stack
62 section .stack nobits align=16 start=STACK_START