小编use*_*247的帖子

asm in C"'mov'的内存引用太多了"

我看过关于同样错误的帖子,但我仍然得到错误:

 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)

c assembly

8
推荐指数
2
解决办法
3万
查看次数

标签 统计

assembly ×1

c ×1