获取变量

时间:2016-05-14 20:32:16

标签: visual-c++ assembly x86 offset inline-assembly

我有这个Visual C ++代码:

 void kopirovaniPrvku(char pole[]){
        _asm{
            mov eax, offset pole;
            mov bl, [eax + 2];
            mov[eax + 7], bl;
            mov bl, [eax + 3];
            mov[eax + 9], bl;
        }
    }

    int _tmain(int argc, _TCHAR* argv[]){
        char polePrvku[10];
        polePrvku[0] = 0;
        polePrvku[1] = 1;
        polePrvku[2] = 2;
        polePrvku[3] = 3;
        polePrvku[4] = 4;
        polePrvku[5] = 5;
        polePrvku[6] = 6;
        polePrvku[7] = 7;
        polePrvku[8] = 8;
        polePrvku[9] = 9;
        kopirovaniPrvku(polePrvku);
    }

我已经有了这个功能,我想使用 OFFSET ,但是我收到了这个错误:

  

错误C2415:操作数类型不正确。

当我使用全局数组时,它没有问题。

我的问题是:为什么我会收到此错误?是因为参数 polePrvku 有不同的地址?我找到一个解决方案并不是很有趣,我只想了解它为什么不起作用。

0 个答案:

没有答案