Прошу советов по выбору ассемблера и просто советов

Тема в разделе "WASM.BEGINNERS", создана пользователем SUNNY, 1 окт 2009.

  1. Microedition

    Microedition Active Member

    Публикаций:
    0
    Регистрация:
    5 июн 2008
    Сообщения:
    814
    Рудольф Марек. Ассемблер на примерах. Базовый курс.

    Правда, там используется ассемблер nasm.
    Но если не использовать специфические директивы, макросы,
    то он совместим с fasm.
     
  2. deLight

    deLight New Member

    Публикаций:
    0
    Регистрация:
    26 май 2008
    Сообщения:
    879
  3. Microedition

    Microedition Active Member

    Публикаций:
    0
    Регистрация:
    5 июн 2008
    Сообщения:
    814
    deLight
    зачем?
     
  4. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    фасм - он лучше потому-что:
    1) это не отродие мелкософта, а софт с открытыме исходниками, а значет при желании можно тому же фасмв добаветь развесистых менюшек, но есле честно, то это нафиг не надо
    2) формат комманд фасма похож на тот, что видно в дизасме, нет всякой путаницы с addr, offset, нет вопросов типа почему пишу mov, а отладчик пишет lea
    3) ох[--]ительная система макросов
    4) полный контроль над тем, что ты получаешь на выходе
    5) есле станешь элитой и будешь кодеть на масме - тебя забанят :)
    6) 100% чото исчо забыл относительно достоинств
     
  5. Microedition

    Microedition Active Member

    Публикаций:
    0
    Регистрация:
    5 июн 2008
    Сообщения:
    814
    Clerk.

    вот поэтому я за fasm.
     
  6. Blackbeam

    Blackbeam New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2008
    Сообщения:
    960
    Вот эту штуковину распакуй в паку масм32 -http://blackbeam.narod.ru/asm.htm -

    и начни со второго урока Iczelion`a

    нужно практически - копмилить, изменять в коде чегонить - компилить, добавлять функции - компилить и так далее...

    поставь себе цель - написать замену мелкосовтовскому уоду или упаковщик, который сжимает GPEG в несколько раз ... и по мере движения к цели ... научищься..

    фасм круче, бесплатен, но, к сожалению... линкера нет у него, масм ловчее...
     
  7. SUNNY

    SUNNY Member

    Публикаций:
    0
    Регистрация:
    1 окт 2009
    Сообщения:
    32
    Столь уважаемого здесь Iczelion`a я в инете нашёл: это "Туториалы Iczelion'а о Win32 API" и ещё CHM-сборник из трёх туториалов. Правда в каждом, в первой главе говорится о некоем "win32asm" который надо изучить заблоговременно и дана ссылка, которая не работает.

    Кстати у меня есть вопрос который меня давно беспокоит: как на машинном коде осуществляется вызов функций операционной системы? Ну в DOS всё понятно, там всё делается через int 21h. А как в WINDOWS? В WINDOWS же, как я где-то читал, прикладным прграммам запрещён прямой доступ к ресурсам компьютера, в том числе к прерываниям.
     
  8. InsidE

    InsidE Member

    Публикаций:
    0
    Регистрация:
    28 май 2009
    Сообщения:
    357
    Адрес:
    Over the hills and far away...
    SUNNY
    эээ...мммм...вообщем в кратце,вызывается системная апи,которая потом вызывает апи подсистемы( ntdll ),которая вызывает прерывание int 2Eh( sysenter в виста и выше ) и через это прерывание попадает в kernel mode...
     
  9. Blackbeam

    Blackbeam New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2008
    Сообщения:
    960
  10. InsidE

    InsidE Member

    Публикаций:
    0
    Регистрация:
    28 май 2009
    Сообщения:
    357
    Адрес:
    Over the hills and far away...
    Blackbeam
    кому пост?
     
  11. SUNNY

    SUNNY Member

    Публикаций:
    0
    Регистрация:
    1 окт 2009
    Сообщения:
    32
    И?
    Первый абзац:
    Этот туториал пpедполагает, что читатель знает, как использовать MASM. Если нет, то для начала скачайте win32asm и пpочитайте текст, входящий в состав энтого пакета, и только затем пpодолжите чтение моего бреда.
     
  12. Microedition

    Microedition Active Member

    Публикаций:
    0
    Регистрация:
    5 июн 2008
    Сообщения:
    814
    SUNNY
    В том то и дело, что изучать надо с ассемблера, а не с API
    операционной системы.

    Читайте пост #21.
     
  13. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    SUNNY
    Функции Win32 API представляют собой с точки зрения ассемблера обычные подпрограммы, вызываемые командой CALL. Что там делается дальше -- знать не обязательно. Расположены они в куче DLL, которые загружаются вместе с запускаемым exe-файлом, причём загрузчик производит настройку загружаемого exe-файла на реальные адреса функций API (до загрузки они неизвестны, поскольку могут меняться в зависимости от версии ОС и т.п. вещей).

    Насчёт запрета доступа к прерываниям -- имеется в виду невозможность создания своих обработчиков прерываний, поскольку их таблица (IDT) находится в ядре оси, куда доступ обычным программам закрыт. Это не значит, что программа не может вызвать прерывание -- все соответствующие инструкции (INT, INTO и т.п.) благополучно работают.

    Microedition
    Не совсем верно: без знания некоего минимума из АПИ невозможно, например, посмотреть результаты работы программы (ну, разве что в отладчике). Другое дело, что для этого достаточно самых-самых минимальных знаний нескольких функций АПИ, а не всего многообразия.