WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Еще один вопрос про C++ и ASM

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Еще один вопрос про C++ и ASM
Kasya опубликован 17-02-2002 23:36 MSK   Click Here to See the Profile for Kasya   Click Here to Email Kasya  
Вопрос состоит в следующем:


Вот у меня есть класс:

class CClass
{
public:
int Fn();

protected:
char *m_pData;
}

И есть такая функция в нём:

int CClass:Fn()
{
char **p = &(this->m_pData);

_asm
{
mov eax, p; // eax = &m_pData
mov edx, [eax]; // edx = m_pData
...
}
...
}

Вопрос состоит в следующем:

Я могу загружать в регистры CPU значения переменных простой командой "mov eax, p", где
p - имя переменной и наоборот. А можно ли делать тоже самое с данными класса, ну в данном
случае с m_pData, чтобы обойтись без вот этой переменной p, которая в этой функции служит
только для того, чтобу получить адрес m_pData. Если можно, то как ?

Заранее спасибо...

Kosha опубликован 18-02-2002 00:17 MSK     Click Here to See the Profile for Kosha  Click Here to Email Kosha     
Не, ну собственно можно...
Указатель памяти на начало объекта класса, и дальше извлекаешь нужное просто из памяти...
1) Даст ли это тебе сделать мастдай?
2) Правильно ли все это обрабатывается? Обработчик на асме - увольте.
3) Оно тебе надо? Неужто из-за этой "р" так сильно тормозит?
4) Может, в стек запихать...?

rivitna опубликован 18-02-2002 00:27 MSK     Click Here to See the Profile for rivitna  Click Here to Email rivitna     
2 Kosha: Бред! :)

2 Kasya:
Делай так:
mov eax,[this]
mov edx,[eax.m_pData]

или сразу

mov edx,[this.m_pData]

rivitna опубликован 18-02-2002 00:34 MSK     Click Here to See the Profile for rivitna  Click Here to Email rivitna     
Насчет второго
mov edx,[this.m_pData]
слегка погорячился :(
Используй первый вариант!
Oval опубликован 18-02-2002 06:03 MSK     Click Here to See the Profile for Oval  Click Here to Email Oval     
Ребята ну мы же договорились вроде что лучший вариант - mov edx,[ecx].m_pData
или mov edx,[ecx]this.m_pData
to Kasya - смотрите внимательно форум.

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.