Ошибка встроенной сборки GCC: не удается получить адрес 'this', который является выражением rvalue

Я все еще борюсь с GCC - компилируем следующий встроенный код сборки (с -fasm-blocks , который включает синтаксис сборки в стиле Intel ) вызывает у меня странную ошибку Невозможно принять адрес 'this', который является выражением rvalue ...

MyClass::MyFunction()
{
    _asm
    {
        //...
        mov ebx, this // error: Cannot take the address of 'this', which is an rvalue expression
        //...
        mov eax, this // error: Cannot take the address of 'this', which is an rvalue expression
        //...
    };
}


Почему я могу хранить указатели на разные объекты в регистрах, но не могу использовать указатель на экземпляр MyClass ?

6
задан Ryan 3 June 2011 в 06:44
поделиться