Xref: news-dnh.mv.net comp.os.msdos.djgpp:2137 Path: news-dnh.mv.net!mv!news.sprintlink.net!in2.uu.net!comp.vuw.ac.nz!mu.sans.vuw.ac.nz!empty From: empty AT sans DOT vuw DOT ac DOT nz (Malcolm Taylor) Newsgroups: comp.os.msdos.djgpp Subject: Re: DPMI question Date: 22 Sep 1995 01:04:17 GMT Organization: SANS, Student Access Network System Lines: 23 References: <4355ve$hj2 AT news DOT mountain DOT net> <43kpn0$1ji AT magus DOT cs DOT utah DOT edu> <811525224snz AT chocolat DOT demon DOT co DOT uk> Nntp-Posting-Host: mu.sans.vuw.ac.nz To: djgpp AT sun DOT soe DOT clarkson DOT edu Dj-Gateway: from newsgroup comp.os.msdos.djgpp Paul Shirley (PS AT chocolat DOT demon DOT co DOT uk) wrote: : larsen AT sunset DOT cs DOT utah DOT edu "Steve Larsen" writes: : I thought the CPU caches the segment descriptor? If so it would attempt : to load invalid values during the selector load op. All a segment register does is point to an entry in the GDT, IDT or LDT (hence the name selector as it selects an entry). The CPU has a cache of these entries to make execution faster. Without this cache the processor would spend all it's time referencing the tables, instead of executing the code. Loading a selector with a value will cause the processor to lookup the descriptor in the appropriate table. Loading an inappropriate value will cause a fault for looking further along the table than actually exists. My advice in this area is to leav deling with the creation of selectors, descriptors etc. to the DPMI provider. The DPMI server is guaranteed to give a valid value to you. Hope this helps Malcolm : -- : Paul Shirley: too lazy to change this sig.