From: mlkessle AT cip DOT physik DOT uni-wuerzburg DOT de (Manuel Kessler) Newsgroups: comp.os.msdos.djgpp Subject: Re: pentium RDMSR instruction Date: 22 Nov 1996 14:16:13 GMT Organization: CipPool der Physikalischen Institute, Uni Wuerzburg Lines: 30 Message-ID: <574cjd$cq6@winx03.informatik.uni-wuerzburg.de> References: <571ku3$gf1 AT news2 DOT noc DOT netcom DOT net> <5734kn$lnr AT troll DOT powertech DOT no> NNTP-Posting-Host: wpax15.physik.uni-wuerzburg.de To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Ove Kaaven (ovek AT arcticnet DOT no) wrote: :> mcarter@ wrote: :> :> >I've got the new DJGPP binaries 2.7 for v2.1 and the assembler now recognizes :> >Pentium instructions - great! RDTSC works fine but RDMSR does not. It gets :> >encoded as 0x0F,0x32 which is right but I get the following error when it is run: :> :> >>Exiting due to signal SIGILL :> >>Invalid Opcode at eip=00001581 :> :> I think RDMSR is a privileged instruction, and must be run from ring :> 0. To use it, either your DPMI host must "simulate" it (not too :> likely), or you must use a ring 0 host, e.g. cwsdpr0. Some time ago I changed CWSDPMI to simulate the privileged RDMSR/WRMSR instructions even from ring 3. You can get the compiled version, sources and diffs from my homepage (see below). But it works only if you don't have emm386 or something similar active, because otherwise CWSDPMI can't emulate because it runs itself in ring 3. Hope this helps. Ciao, Manuel ------------------------------------------------------------------------------ Manuel Kessler Graduate Student at the University of Wuerzburg, Germany, Physics Department SNAIL: Zeppelinstrasse 5, D-97074 Wuerzburg, Germany EMAIL: mlkessle AT cip DOT physik DOT uni-wuerzburg DOT de WWW: http://cip.physik.uni-wuerzburg.de/~mlkessle