使用嵌入式汇编程序编译错误

dat*_*ili 2 c++ assembly inline-assembly visual-studio-2010 visual-studio

我不明白为什么这个代码

#include <iostream>
using namespace std;
int main(){
    int result=0;

    _asm{
        mov eax,3;
        MUL eax,3;
        mov result,eax;
    }

    cout<<result<<endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

显示以下错误.

1> c:\ users\david\documents\visual studio 2010\projects\assembler_instructions\assembler_instructions.cpp(11):错误C2414:非法操作数

一切似乎都很好,但为什么我会得到这个编译错误?

Jus*_*ier 11

根据此页面,该mul指令只接受一个参数:

mul arg

这将"arg"乘以A寄存器中相应字节长度的值,见下表:

操作数大小1字节2字节4字节

其他操作数AL AX EAX

结果的较高部分存储在:AH DX EDX中

结果的下半部分存储在:AL AX EAX中