Re: Is it possible to address more than 1MB in real-mode
- From: João Jerónimo <spamtrap@xxxxxxxxxx>
- Date: Wed, 26 Mar 2008 02:53:27 +0000
Elcaro Nosille wrote:
Would it be possible to use a 32-bit addressing-mode in real-mode via
address-size prefix and thereby to have segments which are 4GB long?
Yes, it's possible. However, first you have to change the size of the
segments in the Internal Descriptor Cache. Otherwise, you'll get a GPF (i'm
not sure, however, if the processor even tries to handle such a strange
thing as a GPF triggered in real mode of if it tripple faults immediately)...
This (changing the size of the segments) is a feature of PM, so you need PM
to do this. So, you go to 16-bit PM, you load your segment registers with
4GB segment descriptors, and then you switch back to real mode, since you
still want to run the BIOS and things alike... Then, you can access data
above 1MB and (I suppose), run code there. Beware that the BIOS won't be
able to return to extended memory, though...
What I described is what we usually call Unreal Mode, Voodoo Mode, Flat
Real Mode, 32-bit Real Mode (this is the less accurate of them!), etc.
In the unlikely case that you have a 386 or a 286, you can also use LOADALL
(but it's not recommended unless you don't intend to share your code with
anyone else).
JJ
.
- Follow-Ups:
- Re: Is it possible to address more than 1MB in real-mode
- From: Wolfgang Kern
- Re: Is it possible to address more than 1MB in real-mode
- From: Dirk Wolfgang Glomp
- Re: Is it possible to address more than 1MB in real-mode
- Prev by Date: Re: int 0x13 utility
- Next by Date: Having trouble posting?
- Previous by thread: Re: Is it possible to address more than 1MB in real-mode
- Next by thread: Re: Is it possible to address more than 1MB in real-mode
- Index(es):
Relevant Pages
|