Gary - Re: Pentium Bug - ILLEGAL INSTRUCTIONS
Somebody posted to the USENET a series of opcodes that if used in a program would crash a Pentium or Pentium MMX:
"char x [5] = { 0xf0, 0x0f, 0xc7, 0xc8 };
main ()
void (*f)() = x; f();
Looks like an invalid form of LOCK CMPXCHG8B to me... > >(F0 0F C7 = LOCK CMPXCHG8B and C8 means 'register addressing with AX' >which makes no sense). I could be wrong though? "
The opcode sequence -- 0xf0, 0x0f, 0xc7, 0xc8 -- does the damage - but the folks who posted this DON"T EVEN KNOW WHAT THESE OP CODES DO! They are a series of unknown (as yet)and illegal instructions that wreck havoc on a Pentium.
A good analogy is driving down a highway at 65 MPH, slamming your automatic transmission into PARK - a totally doable deed, but certainly not advised in any owner's manual. The transmission would be wrecked, the car would decelerate and spin out of control and most likely cause a big accident - and Robert Collins would call his attorney, right after holding a press conference for the media, and sue the car manufacturer for "making this possible".
By the way - Robert Collins did not find this bug - he picked up on it from the usenet just today - now he claims he has known about the bug since the last ice age.
It appears that he immediately called CNET - BROOKE CAROTHERS - and spilled his guts in a hurry so he could get his second round of fame and fortune for reporting an insignificant, illegal and uncharacterized bug.
Paul |