delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/04/16/09:03:52

From: "Alexei A. Frounze" <alex DOT fru AT mtu-net DOT ru>
Newsgroups: comp.os.msdos.djgpp
Subject: [Fwd: Re: Help with Inline ASM...]
Date: Sun, 16 Apr 2000 13:32:19 +0400
Organization: MTU-Intel ISP
Lines: 67
Message-ID: <38F988A3.9521D14A@mtu-net.ru>
NNTP-Posting-Host: ppp97-187.dialup.mtu-net.ru
Mime-Version: 1.0
X-Trace: gavrilo.mtu.ru 955887118 21507 212.188.97.187 (16 Apr 2000 12:11:58 GMT)
X-Complaints-To: usenet-abuse AT mtu DOT ru
NNTP-Posting-Date: 16 Apr 2000 12:11:58 GMT
X-Mailer: Mozilla 4.72 [en] (Win95; I)
X-Accept-Language: en,ru
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com


-------- Original Message --------
Subject: Re: Help with Inline ASM...
Date: Sun, 16 Apr 2000 11:40:57 +0200 (IST)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
To: "Alexei A. Frounze" <alex DOT fru AT mtu-net DOT ru>


On Sun, 16 Apr 2000, Alexei A. Frounze wrote:

> Eli Zaretskii wrote:
> > 
> > On Fri, 14 Apr 2000, Alexei A. Frounze wrote:
> > 
> > > Please read all the following text until its end. Then reply.
> > 
> > I thought I always did that, no need to remind me.
> 
> I tell this because it seems to me that people start replying immediately.

You need to realize that by telling that, you offend people.  Most of 
those who reply to messages about advanced stuff like this always read 
the message first, so in many cases, you offend people for no good 
reason.

So, even if you suspect that your correspondent didn't read your message 
in its entirety, it's usually a good idea to avoid saying that 
explicitly.  Instead, simply point that person to something you already 
wrote.

Please remember that you are talking to people in a language tyhat is 
foreign for you and for many of those who reply.  When this happens, 
misunderstandings are common.  It's not nice to offend people because 
they didn't understand something you wrote.

> > According to my definition, the flat model is when any linear address
> > can be accessed without reloading the segment registers.  DJGPP
> > doesn't allow this (for example, you need _dos_ds to access the
> > conventional memory), so its memory model is not flat.
> 
> :)))
> Not really. GCC was not developed for *DOS* and *DPMI*. It's just a free 32-bit
> GNU C/C++ compiler for i386+. And it may be compiled for Windows as well as for
> DOS/DPMI. Btw, it's available for Linux... Originally it doesn't support any
> segment reloads at all. Just 32-bit offsets.

The code produced by GCC from ``normal'' C sources is only part of the 
issue.  The run-time environment set up by the library startup code is 
the other, no less important part.  The library startup is where the 
segment registers get loaded with specific values, and that's where you 
should look for the details.  In addition, the low-level library 
functions is another important part of the run-time environment.

These additional parts clearly demonstrate that DJGPP's environment 
doesn't use the flat memory model, because the segmentation clearly shows.

The same compiler--GCC--can be used for both flat memory model, like on 
Linux, and for segmented model, like in DJGPP.

The above doesn't mean that data in code seghment cannot be modified: it 
can, because the data and code segments are set up to allow this.

But flat memory model is something else.  That is all I wanted to point 
out.


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019