Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

Is there a DOS memory documentation available? (Users)

posted by ecm Homepage E-mail, Düsseldorf, Germany, 09.01.2024, 09:38

> > However, 86 Mode isn't the only 16-bit mode. There is 16-bit Protected
> Mode
> > since the 286, which allows to access the entire 16 MiB of the 286
> address
> > space, albeit only in 64 KiB chunks.
>
> Actually, you can use 16-bit protected mode with 386+ CPU's to access the
> entire 4 GiB of memory, but still only in 64 kiB chunks. 16-bit PM code is
> nice because it is almost exactly the same as 16-bit real mode code (the
> only real difference being that you are using selectors instead of
> segments). This lets you avoid the need to switch between 16-bit code and
> 32-bit code.

Well, yes, I should have clarified that I was referring to the entire address space of the 286 as a "16-bit CPU". Indeed you can access the 4 GiB address space using 16-bit segments on the 386.

However, even if you run in a CS with 16-bit default address/operand size, the 386 allows you to change the sizes of a single instruction to 32-bits using the asize and osize prefixes. This works in 86 Mode and a 16-bit CS in Protected Mode. However, on a 386 in Protected Mode you can easily set segment limits beyond FFFFh so 32-bit memory references are possible from a 16-bit CS, at which point the term "16-bit Protected Mode" perhaps doesn't fully apply any longer.

(Debug/X and lDebugX in fact do access 32-bit segments using asize prefixes from their 16-bit CS, when running on a 386. As you noted, 16-bit 86 Mode and 16-bit PM are similar, so most of the resident debugger is dual-mode code that can run in either mode. Other than selectors vs segments, which implies that 86 Mode segment arithmetic won't work, PM may also run the DPMI client in ring 3 as opposed to the Real 86 Mode running in ring 0. (Virtual 86 Mode must run in ring 3 I believe, but the VMM may emulate ring 0 features.))

---
l

 

Complete thread:

Back to the forum
Board view  Mix view
22049 Postings in 2034 Threads, 396 registered users, 94 users online (0 registered, 94 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum