我看过关于同样错误的帖子,但我仍然得到错误:
too many memory references for `mov'
junk `hCPUIDmov buffer' after expression
Run Code Online (Sandbox Code Playgroud)
...这是代码(mingw compiler/C :: B):
#include iostream
using namespace std;
union aregister
{
int theint;
unsigned bits[32];
};
union tonibbles
{
int integer;
short parts[2];
};
void GetSerial()
{
int part1,part2,part3;
aregister issupported;
int buffer;
__asm(
"mov %eax, 01h"
"CPUID"
"mov buffer, edx"
);//do the cpuid, move the edx (feature set register) to "buffer"
issupported.theint = buffer;
if(issupported.bits[18])//it is supported
{
__asm(
"mov part1, eax"
"mov %eax, 03h"
"CPUID" …Run Code Online (Sandbox Code Playgroud)