From: alaric AT abwillms DOT demon DOT co DOT uk (Alaric B. Williams) Newsgroups: comp.os.msdos.djgpp Subject: Re: DPMI incorporation... Date: Wed, 01 Jan 1997 00:17:55 GMT Lines: 62 Message-ID: <852077828.10907.0@abwillms.demon.co.uk> References: <199612310023 DOT BAA23998 AT math DOT amu DOT edu DOT pl> NNTP-Posting-Host: abwillms.demon.co.uk To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp "Mark Habersack" wrote: >1. in i386 Intel introduced a new level of indirection in memory >addressing - paging. Memory in i386 can be divided into units as >small as 4KB (PAGES) while in iAPX286 the smallest swappable (in >virtual memory sense) was a SEGMENT (64KB). That's not quite getting the point, Mark. The 286 segments were limited to a maximum size of 64Kb, but could be any size. The idea was that you swapped things in and out at a high level; whole DLLs and things like that lived in individual segments. The 386 flat address space just arbitarily carves itself into 4k bits for management, they don't mean anything structurally. > While i386 retains all >the segmentation mechanisms of 286, it adds the new paging feature to >make virtual memory management easier (there's more to it, see below) >Pages also enable complete separation of programs in memory - it is >possible to forbid one program changing or even looking into another >program's memory arena. Windows NT takes advantage of this feature. That can be done with segments as well - there are global segments, and local segments. A simple instruction (LIDT xxx) switches between local segment groups for task switches, and can only be used by ring 0 code. >3. Additional segment registers (fs, gs) I've never figured out why :-) Still, it's interesting that Intel have given names to registers that are clearly alphabetically named, yet those names reflect their instruction-set biases: AX = accumulator; specialised arithmetic instructions BX = base; array indexing instructions CX = count; looping instructions DX = data; IO instructions ... CS = code segment DS = data segment ES = extra segment FS = far data segment GS = global data segment What about AS and BS? :-) ABW -- "Simply drag your mother in law's cellphone number from the Address Book to the Laser Satellite icon, and the Targeting Wizard will locate her. Then follow the onscreen prompts for gigawattage and dispersion pattern..." (Windows for Early Warning and Defence User's manual P385) Alaric B. Williams Internet : alaric AT abwillms DOT demon DOT co DOT uk Hello :-)