|
250 / 60 / 6
Регистрация: 21.05.2017
Сообщений: 73
|
||||||
Соглашение о вызовах x6409.06.2017, 01:29. Показов 13583. Ответов 27
В x64-соглашении первые четыре целочисленных аргумента (слева направо) передаются в 64-битных регистрах, выбранных специально для этой цели:
RCX: 1-й целочисленный аргумент RDX: 2-й целочисленный аргумент R8: 3-й целочисленный аргумент R9: 4-й целочисленный аргумент Остальные целочисленные аргументы передаются через стек. Указатель «this» считается целочисленным аргументом, поэтому он всегда помещается в регистр RCX. Если передаются значения с плавающей точкой, то первые четыре из них передаются в регистрах XMM0-XMM3, а последующие — через стек. Так?
2
|
||||||
| 09.06.2017, 01:29 | |
|
Ответы с готовыми решениями:
27
Соглашения о вызовах и masm64 Соглашение о вызове функций (выравнивание стека) Используя соглашение stdcall вызвать функцию на ассемблере |
|
250 / 60 / 6
Регистрация: 21.05.2017
Сообщений: 73
|
|
| 11.09.2017, 12:31 [ТС] | |
|
Спасибо Вам!
Файлы присылаю, а ml64 и link у меня из VS2015. Другие версии не пробовал. Дебаггер x64dbg зависает после запуска с точки останова GetMessage
1
|
|
|
Asm/C++/Delphi/Py/PHP/VBA
|
||
| 11.09.2017, 22:25 | ||
|
Не знаю в чём там проблема. Выглядит нормально.
movaps [rax-28h],xmm6 в модуле uxtheme из-за отсутствия выравнивания по 16 байтам. Хотя стек при вызове CreateWindowEx выровнен.
0
|
||
|
250 / 60 / 6
Регистрация: 21.05.2017
Сообщений: 73
|
|
| 11.09.2017, 22:46 [ТС] | |
|
Млин. Но всё равно спасибо огромнейшее...
...Где-нибудь ключ не поставлен или директива какая-нибудь. Так наскоком не возьмёшь. Буду курить мануалы... По результату отпишусь
1
|
|
|
250 / 60 / 6
Регистрация: 21.05.2017
Сообщений: 73
|
|
| 11.09.2017, 23:54 [ТС] | |
|
Вот он:
1
|
|
|
250 / 60 / 6
Регистрация: 21.05.2017
Сообщений: 73
|
||||||||||||||||
| 17.09.2017, 01:21 [ТС] | ||||||||||||||||
|
Правильное решение найдено. Выравнивать стек нужно в каждой процедуре.
Теперь есть готовая оконная среда, и можно переходить к разработке нетривиальных приложений.
1
|
||||||||||||||||
|
250 / 60 / 6
Регистрация: 21.05.2017
Сообщений: 73
|
||||||
| 19.09.2017, 13:46 [ТС] | ||||||
Сообщение было отмечено ФедосеевПавел как решение
Решение
И в завершение - анализ моей ошибки при переводе кода Руслана Аблязова.
Суть программы: SDI-окно с двумя кнопками, одна из которых выводит MessageBox "О программе", другая - завершает программу. Вот моя ошибка:
Каждая кнопка (BUTTON) в Windows - это самостоятельное дочернее окно. Каждая кнопка подлежит регистрации и обладает уникальным дескриптором окна, но все кнопки ссылаются на единый (родительский) дескриптор программы и посылают сообщения в единую структуру.
1
|
||||||
|
250 / 60 / 6
Регистрация: 21.05.2017
Сообщений: 73
|
|||||||||||
| 16.12.2017, 21:19 [ТС] | |||||||||||
|
Мне всё-таки надоело каждый раз загружать параметры в регистры.
Вместо макроса invoke я сделал свои маленькие вызывалки, без блэкджека и прочих излишеств. Они просто загружают параметры в регистры, не меняя указатель стека. Т.е. я (это лишь мой эксперимент) не резервирую стек перед каждым вызовом, а один раз в прологе каждой процедуры выравниваю по 10h и просаживаю на 80h:
Почему 80h? - С потолка. С запасом. На 16 гипотетических параметров по 8 байт. Вроде работает. Если я не прав, то очень прошу: скажите об этом, пожалуйста, потому что это ассемблер, и я могу осознать ошибку очень не скоро.
1
|
|||||||||||
| 16.12.2017, 21:19 | |
|
Как зовут соглашение о вызовах для функции main консольного Window x 64 приложения?
Соглашения о вызовах. Соглашения о вызовах в Keil Функции с разными соглашениями о вызовах Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация
В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
|
Сукцессия 20. Война автоботов. Делаем ставки. Лёд против "пш-пш!".
anaschu 11.07.2026
Битва ИИ в ризосфере: Как мы скрестили жесткие ОДУ, закон Фика и «подземный шантаж»
Уважаемые коллеги!
Хочу поделиться уникальным опытом ведения междисциплинарной компьютерной разработки. Прямо. . .
|
Сукцессия 19. Какие выводы я сделал из модели? Часть 2.Внутримикоризный стехиометрический буфер и хроно-дискретные зоны экспансии
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы
Математический аппарат моделирования
|
Сукцессия 18. Какие выводы я сделал из войны грибов с деревьями? Часть 1- рассказ и немного про термины
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы
Математический аппарат моделирования
Система ОДУ описывает динамику изменения массы различных компонентов системы во времени. Ключевой. . .
|
|
Просветление в 5 секунд
kumehtar 10.07.2026
Андрей Веретенников выдал фразу недавно: "Вам не обязательно кем-то себя считать"
|
Эксперимент с картинкой-обложкой на CodinGame
Adler 10.07.2026
Решил на днях провести эксперимент. У меня есть аккаунт на CodinGame, ТОП-3 по РФ среди 2200 участников (в разделе соревнования по программированию ИИ-ботов). Там есть обложка, куда можно влепить. . .
|
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
|
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
|