powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Calling convention на 64 битах Windows
12 сообщений из 12, страница 1 из 1
Calling convention на 64 битах Windows
    #38225847
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то я немного запутался: MSDN утверждает, что стэк при возврате чистит процедура, Вики
- что это делает вызывающий код. С одной стороны доверять вики больше чем MSDN - стрёмно,
с другой - непонятно как при очистке стэка вызываемой функцией работают функции с
переменным числом параметров. А системы на 64 бита под рукой чтобы проверить
экспериментально - нет.

Так кто всё же прав?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Calling convention на 64 битах Windows
    #38225872
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Ну, вообще говоря, конвенций много:

http://msdn.microsoft.com/ru-ru/library/984x0h58.aspx
...
Рейтинг: 0 / 0
Calling convention на 64 битах Windows
    #38225878
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий Широков,

Хотя, наверное, ты имел ввиду эту статью http://msdn.microsoft.com/en-us/library/ms235286.aspx
...
Рейтинг: 0 / 0
Calling convention на 64 битах Windows
    #38225965
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий ШироковНу, вообще говоря, конвенций много:

На 32-х битах их много. На 64-х - одна. И именно по ней вопрос: кто на самом деле очищает
стэк от набитых туда аргументов?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Calling convention на 64 битах Windows
    #38225994
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovАнатолий ШироковНу, вообще говоря, конвенций много:

На 32-х битах их много. На 64-х - одна. И именно по ней вопрос: кто на самом деле очищает
стэк от набитых туда аргументов?


С чего ты так решил ?
Пруфлинк ?

( я вот не знаю, но не вижу причин, почему бы не существовать многим конвенциям. Та же дельфа традиционно свои использует.)
...
Рейтинг: 0 / 0
Calling convention на 64 битах Windows
    #38226092
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivС чего ты так решил ?
Пруфлинк ?
http://en.wikipedia.org/wiki/X86_calling_conventions
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Calling convention на 64 битах Windows
    #38226139
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Видимо, ответ на твой вопрос http://msdn.microsoft.com/en-us/library/tawsa7cb.aspx

Вообщем, с 64 битами оказалось все достаточно интересно: часть параметров через регистры передаются, а часть (для которых не хватило регистров) через стек. Пролог/Эпилог как раз и описывает процедуру подготовки/восстановления среды выполнения вызова.
...
Рейтинг: 0 / 0
Calling convention на 64 битах Windows
    #38226169
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Dimitry Sibiryakov, а где в msdn написано, что стек чистит вызываемая процедура? Нет там такого.
...
Рейтинг: 0 / 0
Calling convention на 64 битах Windows
    #38226283
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?а где в msdn написано, что стек чистит вызываемая процедура? Нет там такого.
http://msdn.microsoft.com/en-us/library/6xa169sk.aspx

Stack-maintenance responsibility

Called function pops the arguments from the stack.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Calling convention на 64 битах Windows
    #38226294
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Dimitry Sibiryakov, но эта страничка - про 32 битный __fastcall
...
Рейтинг: 0 / 0
Calling convention на 64 битах Windows
    #38226324
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?но эта страничка - про 32 битный __fastcall
На эту страничку ссылается описание 64-х битного ABI по второй ссылке Анатолия:
x64 just uses the
__fastcall calling
convention and a RISC-based exception-handling model.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Calling convention на 64 битах Windows
    #38226772
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий ШироковВообщем, с 64 битами оказалось все достаточно интересно: часть параметров через регистры передаются
и под них на стеке место резервируется


вызывающий стек чистит - откуда фантазии?
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Calling convention на 64 битах Windows
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]