eflags+dpl3+dostęp do portów

0

Witam.
Mam taki problem.
Uruchamiam w PMode kod, który restartuje komputer:

#include <x86.h>
void reboot(void) //Reboot computer
{
 int temp;
 do
 {
  temp = inportb( 0x64 );

  if ( temp & 1 )
  inportb( 0x60 );
 }

 while ( temp & 2 );

 outportb(0x64, 0xFE);
}

int main(long argc, char ** argv)
{
 reboot();
 for(;;);
 return 0;
}

Kod ten zapisuje do różnych portów. Teraz moje pytanie: Dlaczego nie dostaję przerwania błędu jeżeli program ten pracuje w DPL3 z rejestrem eflags ostawionym na: 0x3202. Wg. dokumentacji intela nie powinien on mieć dostępu do portów WE/WY :/ Więc czemu kod się wykonuje i komputer sie resetuje :>
Pozdrawiam :)

0

No to chyba jasne, IOPL = 3, usaw na 0 i dzialac nie bedzie :P

0

Miałeś racje. Ale z tego wynika ze głupoty na mega-tokyo piszą :]

1 użytkowników online, w tym zalogowanych: 0, gości: 1