C ++内联asm操作数大小冲突错误

时间:2013-12-25 20:49:48

标签: c++ inline-assembly


CHAR cRet[256] = {0};

__asm
{
    push SomeHandle;
    mov ecx, 1;
    call SomeFunc;
    mov ecx, eax;
    call AnotherFunc;
    mov ecx,dword ptr ds:[eax+0x08];
    mov eax,dword ptr ds:[ecx+0x1C];
    mov cRet, eax;
}

我有两个结构,第一个结构+ 0x08指向第二个结构,我想读取第二个结构+ 0x1C这是一个字符串数组(char *)

编译器在这一行中给我operand size conflict error

mov cRet, eax;

在第一步中我成功获得第二个结构的指针,唯一的问题是这个错误。

出了什么问题?

编辑:
通过将CHAR cRet[256] = {0};更改为CHAR *cRet;

解决了问题

0 个答案:

没有答案