Как получить доступ к контрольному регистру CR0, CR2, CR3 из программы? Получение неисправности сегментации

Я написал программу, которая пытается прочитать и записывать в управляющие регистры.

Программа компилирует нормально, но когда встроенный сборник собирается выполнить, он создает ошибку сегментации.

код:

void instructions(int val)
{
    int i;
    int value;
    for(i = 0; i < val; i++)
         __asm__("mov %cr0, %eax");
}

Я использовал GDB и выходил через каждую строку в сборе, и он находится на MOV% Cr0,% EAX , что неисправность сегментации происходит.

Любой, кто знает, что не так?

10
задан Ciro Santilli 新疆改造中心法轮功六四事件 19 October 2015 в 19:16
поделиться