Topic: x86 Registers (1 of 4), Read 77 times
Conf: VEDIT Macro Language Support
From: Mike O'Connor
Date: Monday, May 22, 2000 07:02 AM

Is VPW.exe using the FS and GS data segments in addition to the ES segment?

If not this could explain why I can't load an ENTIRE file into RAM that exceeds something under 2 physical segments (128KB).

The old Version 2 was able to load 58KB in to it's 64KB(max) buffer all at one time.


Mike

 


Topic: Re: x86 Registers (2 of 4), Read 67 times
Conf: VEDIT Macro Language Support
From: Ted Green
Date: Monday, May 22, 2000 11:13 AM

At 08:22 AM 5/22/2000 -0400, you wrote:
>Is VPW.exe using the FS and GS data segments in addition to the ES segment?
>If not this could explain why I can't load an ENTIRE file into RAM that
>exceeds something under 2 physical segments (128KB).

VEDIT does not use the FS and GS segments in
its 16-bit version. A 32-bit program doesn't
use segments (I think they all have to be set
to 0000). We arbitrarily set the maximum buffer
size to 128K in the 32-bit version; we think it
currently gives VEDIT the optimal speed. A new
memory management scheme will come out later this
year; it will allow buffers much larger than
128K.

Ted.

 


Topic: Re: x86 Registers (3 of 4), Read 70 times
Conf: VEDIT Macro Language Support
From: Mike O'Connor
Date: Monday, May 22, 2000 11:49 AM

DS is the Data Segment on 8086-88/80186-88/80286/386/486/Pentium
ES is the Extra Segment ditto.

FS & GS are additional data segments that can only be accessed on a 32-bit machine.(386/486/PENTIUM....). I don't think that WIN95/98 are FLAT Memory models are they unlike latest NT?

 


Topic: Re: x86 Registers (4 of 4), Read 72 times
Conf: VEDIT Macro Language Support
From: Ted Green
Date: Monday, May 22, 2000 12:06 PM

At 11:44 AM 5/22/2000 -0400, you wrote:
>FS & GS are additional data segments that can only be accessed on a 32-bit
>machine.(386/486/PENTIUM....). I don't think that WIN95/98 are FLAT Memory
>models are they unlike latest NT?

32-bit Windows programs are all Flat memory model and therefore don't use Segment registers. 32-bit flag .ASM programming is much easier!

Win NT/2000 use a fully 32-bit flat kernel. Win 95/98 still use hybrid 16 and 32-bit kernel modules, e.g. user.exe and gdi.exe are partially 16-bits for compatibility with old Win31 programs. These 16-bit portions are susceptible to crashes.

Ted.