формат вызова функций fastcall64

Тема в разделе "WASM.X64", создана пользователем Quark, 30 авг 2008.

  1. Quark

    Quark New Member

    Публикаций:
    0
    Регистрация:
    7 авг 2007
    Сообщения:
    211
    1. зачем сделано резервирование стека?
    2. нужно ли его делать, если количество аргументов меньше или равно четырём? то есть, например, при вызове CloseHandle нужно ли делать так:

    Код (Text):
    1. mov rcx, h_file
    2. call [CloseHandle]
    или так
    Код (Text):
    1. mov rcx, h_file
    2. sub rsp, 8 * 1
    3. call [CloseHandle]
    4. add rsp, 8 * 1
    3. как на fasm можно написать макрос для fastcall64? в инклудах есть proc64, но там параметры помещаются не через push, а через mov [rsp+], что существенно увеличивает размер кода.
     
  2. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    Только чтобы можно было получить адрес параметра, в ассемблере это не обязательно
    Но поскольку это типа стандарт - надо осознать, что не будут работать всякие вкусности типа сех-ов, унвинда итд