From: "Christopher Nelson" To: Subject: Re: How to change Executable format to my own? Date: Wed, 7 Jul 1999 20:08:41 -0600 Message-ID: <01bec8e6$ccdcac80$LocalHost@thendren> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 4.71.1712.3 X-MimeOLE: Produced By Microsoft MimeOLE V4.71.1712.3 Reply-To: djgpp AT delorie DOT com >On Mon, 5 Jul 1999, Andy Cooper wrote: > >> Hi,Well, I'm wondering whether anyone will be able to help me. I am wanting >> to get DJGPP C to produce executables in my own format.The plan is to >> convert the output from DJGPP, into a flat memory executable that will have >> two segments, one for the program and the second for the data. These segments >> will have an address starting at zero. > >Sorry, I don't understand. How can two sections begin at the same >address (zero)? intel x86 architecture allows using segment registers for separate data, code, stack, and 2 extra segments. each segment may have it's own base, so in a fully segmented architecture, it's completely allowable to have data AND code a 0. alternatively, for DJGPP programs used as boot-loaders, or for operating systems, you can have the compiler stick stuff where it wants to, then subtract the data segment base to assume a base of 0. from there it is simply neccessary to properly initizlise the DS segment selector properly, and you have 0-based data. since code is already at 0, you can just stick it in another similiar, but code-marked, segment. -={C}=-