Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2008, 00:37   #1
Showy
Форумчанин Подтвердите свой е-майл
 
Аватар для Showy
 
Регистрация: 08.08.2007
Сообщений: 183
По умолчанию Asm в делфи. Создание объекта

Привет всем!
например мне нужно создать битмап
пишу
Код:
mov dl, $01
mov eax, ????
call TBitmap.Create
mov BMP1, eax
что передавать в eax? когда смотрю в CPU там написано например mov eax, [$0047b4ac] а может быть и другое значение.
Заранее всем спасибо!
Until The End Of Time
Showy вне форума Ответить с цитированием
Старый 17.12.2008, 05:29   #2
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

Это адрес твоего битмапа. Тоесть где он находится в памяти, во время выполнения. [] обращение по адресу. Кстати если не ошибаюсь то адрес по идее нужно не в eax ложить а в стек тоесть :
push 00204550 например.
Подробностей не знаю так как не юзаю делфи.
"Тяжело в учении, легко в бою" - А.В. Суворов
Ivan_32 вне форума Ответить с цитированием
Старый 17.12.2008, 17:06   #3
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

В делфи модель вызова fastcall, первые 3 параметра передаются через регистры. Что за адрес - фиг знает, формально в процедуру ничего не передаётся, но всякие там inherited/наследование... чёрт ногу сломит.

Зачем мешать объекты с ассемблером?

--

Вызывается TBitmap.create, которое нормализует стек, и вызывает некое @ClassCreate, которое вызывает что-то по адресу eax-0Ch, этим что-то оказывается TObject.NewInstance, которое делает GetMem/GetSysMem и уходит в дебри модуля System, в доме, который построил Джек. Вот как-то так
пыщь

Последний раз редактировалось JTG; 17.12.2008 в 17:16.
JTG вне форума Ответить с цитированием
Старый 17.12.2008, 23:03   #4
Showy
Форумчанин Подтвердите свой е-майл
 
Аватар для Showy
 
Регистрация: 08.08.2007
Сообщений: 183
По умолчанию

Нарыл что надо в eax передавать ссылку на сам класс, в данном случае на TBitmap. А как её получить не понимаю.
______________________________
Упс тупанул.Ссылка получается через ClassType. Всем спасибо!

Код:
call TBitmap.ClassType
mov dl, $01
call TBitmap.Create
mov BMP1, eax
Until The End Of Time

Последний раз редактировалось Showy; 18.12.2008 в 00:30.
Showy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамичесое создание объекта Черничный Общие вопросы Delphi 8 29.06.2008 23:01
Динамическое создание объекта ANGa Помощь студентам 3 10.04.2008 18:14
Динамическое создание объекта Fruit Общие вопросы Delphi 5 24.01.2008 11:00
Динамическое создание объекта Fruit Общие вопросы Delphi 2 16.01.2008 21:18