C++ & inline asembler
От: Жива  
Дата: 06.10.05 18:45
Оценка:
у меня есть несколько вопросов:

1. как проще всего в с++ сделать чтоб было две переменне:
int a;
char b; //Должен указывать на старший байт а???

причем а и b это не указатель это локальная переменная класса, которая валяется в стеке.

2. есть код:
int *myvar
__asm
{
mov eax, myvar;
//а в отладчике он мне пишет: mov eax, 0; это что оптимизация такая? как тогда в инлайн ассемблере загрузить адрес указателя в eax?

}
Re: C++ & inline asembler
От: Жива  
Дата: 06.10.05 18:53
Оценка:
int *myvar;
__asm
{
mov myvar, eax; //ошибка компиляции почему? improrer operand type C2415
}
Re: C++ & inline asembler
От: Erop Россия  
Дата: 06.10.05 19:18
Оценка: 3 (1)
Здравствуйте, Жива, Вы писали:

Ж>у меня есть несколько вопросов:


Ж>1. как проще всего в с++ сделать чтоб было две переменне:

Ж> int a;
Ж> char b; //Должен указывать на старший байт а???

Ж>причем а и b это не указатель это локальная переменная класса, которая валяется в стеке.



void foo()
{
    union {
        int a;
        char b[sizeof(int)];
    }
}


Так подойдёт?
Только ты точно уверен, что это тебе надо?
Не откроешь тайну зачем?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re: C++ & inline asembler
От: Erop Россия  
Дата: 06.10.05 19:19
Оценка: 1 (1)
Здравствуйте, Жива, Вы писали:

Ж>2. есть код:

Ж>int *myvar
Ж>__asm
Ж> {
Ж> mov eax, myvar;
Ж>//а в отладчике он мне пишет: mov eax, 0; это что оптимизация такая? как тогда в инлайн ассемблере загрузить адрес указателя в eax?

Ж> }


1) Пользуйся, пожалуйста, тэгами форматирования в постах -- читать легче
2) приведи более точно код, а то то, что ты привёл компилироваться не должно бы
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re: C++ & inline asembler
От: vnp  
Дата: 06.10.05 20:06
Оценка: 1 (1)
Здравствуйте, Жива, Вы писали:

Ж>у меня есть несколько вопросов:


Ж>1. как проще всего в с++ сделать чтоб было две переменне:

Ж> int a;
Ж> char b; //Должен указывать на старший байт а???

Уточните вопрос. Каким образом char собирается ыказывать на что бы то ни было?
Re[2]: C++ & inline asembler
От: Жива  
Дата: 07.10.05 06:09
Оценка:
Всем спасибо проблема решилась с жестким использованием асемблера
Re[2]: C++ & inline asembler
От: Аноним  
Дата: 07.10.05 06:36
Оценка:
Здравствуйте, Жива, Вы писали:

Ж>int *myvar;

Ж> __asm
Ж> {
Ж> mov myvar, eax; //ошибка компиляции почему? improrer operand type C2415
Ж> }

Попробуй mov dword ptr myvar, eax
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.