![]() |
|
![]() ![]() ![]() |
|
slavaentp |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 17.6.2008 Репутация: нет Всего: -1 |
||||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: нет Всего: 106 |
ассемблерные коды параметров функций
это что еще за зверь? даже приблизительно непонятно в чем вопрос slavaentp, расшифруй, пожалуйста, что ты имел ввиду -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
slavaentp |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 17.6.2008 Репутация: нет Всего: -1 |
Имеется в виду использование ВинАпи на ассемблере.
Пример: push 0 push 0 push aa11bbcc; //aa11bbcc - адрес строки, которая содержит имя файла + 00. Call PlaySoundA 3 пуша - это три параметра функции Play Sound. У этого параметра коды: 00 содержит одно значение(например - SND_APPLIACTION), у 01 другое, у 02 третье и т.д. |
|||
|
||||
GremlinProg |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: нет Всего: 106 |
3 пуша - это действия, которые необходимо провести, чтобы сформировать стековый кадр на входе, но это ни как не коды параметров, коды (значения) параметров общеприняты и обусловлены типами параметров, которые как раз документированы: LPCTSTR, HMODULE, DWORD приблизительно, я могу предположить, что у тебя появились вопросы по соглашениям вызовов API, которые влияют на порядок укладки параметров в стек и признак их освобождения после вызова тут - да, верно, не всегда такие моменты освещает документация, но это скорее всего связано с тем, чтобы смысл содержания документа доходил до читателя быстрее, а детали всегда можно найти в SDK загляни в файл mmsystem.h, на который ссылается MSDN в разделе Requirements, и найдешь примерно следующее:
т.е. тут используется соглашение stdcall, что значит: положить в стек параметры в обратном порядке, но выталкивать их после вызова уже не нужно, это делает сама функция PS: это основное соглашение, которое использует API, и это еще одна причина, по которой соглашение вызова не приводится в MSDN -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||
|
|||||
slavaentp |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 17.6.2008 Репутация: нет Всего: -1 |
Это не отменяет того факта, что в ассемблере пишется Push 0, Push 2, Push 80 и т.д., а не имена переменных
![]() |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: нет Всего: 106 |
начинаю понимать суть вопроса ) вообще-то, это зависит от компилятора, если он поддерживает директиву define, то и "цифры" запоминать и писать не надо ) достаточно найти приемлемый, актуальный набор SDK для своего компилятора, в котором все эти константы объявлены и использовать их в своих программах у нас есть раздел ASM, в котором решаются, среди прочего, и эти вопросы -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
slavaentp |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 17.6.2008 Репутация: нет Всего: -1 |
Я программлю через ОллиДебаггер
![]() |
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: нет Всего: 26 |
slavaentp, судя по уровню вопроса, те еще рано чтото делать на асме
|
|||
|
||||
slavaentp |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 17.6.2008 Репутация: нет Всего: -1 |
GremlinProg, раз уж перенесли в раздел АСМ - то меня больше интересует соседний вопрос, который я в этом же разделе задал;)
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm для Windows/DOS" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm для Windows/Dos | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |