如何从程序中访问控制寄存器 cr0、cr2、cr3?出现分段错误。

10 浏览
0 Comments

如何从程序中访问控制寄存器 cr0、cr2、cr3?出现分段错误。

我写了一个程序,尝试从控制寄存器读取并写入数据。\n程序可以正常编译,但是当内嵌汇编要执行时,出现了分段错误。\n代码:\nvoid instructions(int val)\n{\n int i;\n int value;\n for(i = 0; i < val; i++)\n __asm__(\"mov %cr0, %eax\");\n}\n我使用了GDB,并逐行调试了每个汇编指令,发现在\"mov %cr0,%eax\"处发生了分段错误。\n有谁知道问题出在哪里吗?

0