我使用以下代码读取 msr,但运行时崩溃。我不知道为什么。
#include <stdio.h>
#include <stdlib.h>
int main()
{
register long ecx asm("%ecx");
register long eax asm("%eax");
register long edx asm("%edx");
asm("mov %1, %0":"=r"(ecx):"i"(0x1B0));
asm("rdmsr");
/*
asm("xor %1, %0":"+r"(eax):"r"(eax));
asm("xor %1, %0":"+r"(edx):"r"(edx));
asm("mov %1, %0":"=r"(eax):"i"(0x01));
printf("%ld %ld %ld",ecx,eax,edx);
*/
}