Воскресенье
02.02.2025
13:47
Форма входа
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    OPEN SOURCE PROJECT

    [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
    • Страница 1 из 1
    • 1
    Перевести макрос в чистый асм код
    QorlumДата: Воскресенье, 11.10.2009, 19:00 | Сообщение # 1
    Рядовой
    Группа: Пользователи
    Сообщений: 1
    Репутация: 0
    Статус: Offline
    Сабж:
    есть код макросов

    хочу переписать все эти макросы на чистый асм... Помогите ето сделать=)
    Весь код не уместился, поэтому написал тольео два макроса потом дополню...

    Добавлено (11.10.2009, 18:59)
    ---------------------------------------------
    Вот дальше код...

    Добавлено (11.10.2009, 19:00)
    ---------------------------------------------
    и далее

     
    fasmДата: Понедельник, 12.10.2009, 15:54 | Сообщение # 2
    Admin
    Группа: Заблокированные
    Сообщений: 122
    Репутация: 5
    Статус: Offline
    на примере ExitProcess, HWND_DESKTOP, text, title, 0

    1: invoke - это альтернатива call, он провереряет сколькопараметров надо вытолкнуть в stack например call ExitProcess - выдаст ошибку, т.к. при таком вызове надо вытолкнуть в stack двойное слово (д.б. передоваемый параметр) (прототип ExitProcess: ExitProcess proto uExitCode:DWORD т.е. ей надо передать uExitCode:DWORD - двойное слово) invoke ExitProcess - такой ошибки не выдаст это всё макросы а не фичи ассемблянта

    2: cdecl.inc
    здесь определены макросы:
    -cproc
    -enterc
    -retc
    -ccall
    -cinvoke
    в принципе то же самое что и stdcall - только передача параметров идёт по C-договорённости параметры передаются справа налево (т.е. самый правый параметр кладётся в стек первым), вызывающий должен уровнять стек после вызова.

    К примеру без макроса invoke

    push 0
    push title
    push text
    push HWND_DESKTOP
    call [MessageBox]

     
    • Страница 1 из 1
    • 1
    Поиск: