Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 14.09.2011
Сообщений: 4
1

Помогите с ошибкой. Ассемблерные блоки

14.09.2011, 19:51. Просмотров 576. Ответов 0
Метки нет (Все метки)

Помогите пожалуйста разобраться с ошибкой

Есть header файл с описанием объекта, привожу часть кода
class CBrain {
public:
CBrain( void );
virtual ~CBrain( void );
void SetMemDepth( UINT nMem1, UINT nMem2, UINT nMem3 );
........................................
protected:
........................................
UINT nMemDepth1; // Глубина памяти Mem1 нейрона.
UINT nMemDepth2; // Глубина памяти Mem2 нейрона.
UINT nMemDepth3; // Глубина памяти Mem3 нейрона.

UINT nMemMask1; // Маска памяти Mem1 нейрона.
UINT nMemMask2; // Маска памяти Mem2 нейрона.
UINT nMemMask3; // Маска памяти Mem3 нейрона.
};


И срр файл с описанием методов вышеописанного обекта

void CBrain::SetMemDepth( UINT nMem1, UINT nMem2, UINT nMem3 ) {
__asm {
// Блок обработки данных для Mem1.
mov ebx, this
bsr ecx, nMem1
add ecx, 2
and ecx, 0xfe
mov [ebx].nMemDepth1, ecx
mov [ebx].nMemMask1, ecx

mov eax, 0xffffffff
shl eax, cl
not eax

mov dword ptr [ebx].nMemMask1, eax
........................................
}
}


В строке выделенным красным цветом компилятор сообщает об ошибке:
(60) : error C2410: 'nMemMask1' : ambiguous member name in 'first operand'
Никак не могу понять в чем там проблема ведь в переменную nMemDepth1 все благополучно сохраняется а в nMemMask1 не могу сохранить результат и описаны обе эти переменные одинаково.

П.С. Когда строку с ошибкой комментирую то проект благополучно компилируется без ошибок, а с этой строкой ни как

Добавлено через 21 минуту
Какая то чудесия получается, если я переменную nMemMask1 переименовываю например в nMemMask1A или nMemMask, то все компилируется без ошибок значит проблема в имени. Если кто знает отпишитесь пожалуйста, почему так получается?

Добавлено через 20 минут
Все нашел ошибку у меня была объявлена статическая переменная в другом объекте с тем же именем, может кому пригодится в данной ситуации обращение на ассемблере к переменным объекта надо было строить с указанием имени объекта

Вот правильный вариант СРР файла описанного выше
void CBrain::SetMemDepth( UINT nMem1, UINT nMem2, UINT nMem3 ) {
__asm {
mov ebx, this

// Блок обработки данных для Mem1.
bsr ecx, nMem1
add ecx, 2
and ecx, 0xfe

mov dword ptr [ebx]this.nMemDepth1, ecx

mov eax, 0xffffffff
shl eax, cl
not eax

mov dword ptr [ebx]this.nMemMask1, eax
................................................
}
}


Извините что запачкал форум темой в которой задал вопрос и сам на него ответил, надеюсь что может кому эта информация поможет
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.09.2011, 19:51
Ответы с готовыми решениями:

Помогите с ошибкой.
Почему на экран не выводится enterSequence ? Просто программа прекращается на вводе n . #include...

Помогите с ошибкой
Здравствуйте,При написании кода вышла ошибка,в чем проблема? edit15.Text := CheckListBox1.Checek;...

Помогите с ошибкой
Вообще в проге при нажатии ВЛЕВО и ВПРАВО жёлтая картинка должна плавно двигаться, но почему то он...

Помогите с ошибкой
Кто знает, что с этим можно сделать: Project Timer.exe raised exeption class EInvalidOp with...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.09.2011, 19:51

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Помогите с ошибкой
Собственно При проведении документ выдает ошибку: Ошибка при выполнении обработчика -...

Помогите с ошибкой
var Form1: TForm1; tablica:array of array of string; kolichestvo:integer; procedure...

Пожалуйста, помогите с ошибкой...
Добрый день всем. Такая ситуация: Сделано 2 сайта на Denwere на локалхосте все норм...

Помогите разобраться с ошибкой!
Всем доброго времени суток. Помогите разобраться, по какой причине возникает ошибка: У одного из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.