писать на чистом ассемблере

Тема в разделе "WASM.HEAP", создана пользователем WWWorm, 12 окт 2009.

  1. WWWorm

    WWWorm New Member

    Публикаций:
    0
    Регистрация:
    8 окт 2009
    Сообщения:
    22
    Здравствуйте, уважаемые кодеры!!!
    Вот объясните мне не опытному что значит писать на чистом ассемблере или это тока использовать push и call вместо invoke или еще что то???
     
  2. MetAlic

    MetAlic New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2009
    Сообщения:
    111
    чистый асм, - это то, что в отладчике видишь ))))
     
  3. WWWorm

    WWWorm New Member

    Публикаций:
    0
    Регистрация:
    8 окт 2009
    Сообщения:
    22
    не я на си не пишу...
    main,...main.. что то не помню, или это вы про winmain proc.....
     
  4. WWWorm

    WWWorm New Member

    Публикаций:
    0
    Регистрация:
    8 окт 2009
    Сообщения:
    22
    в одладчике ...мм, ну это прям незнаю, да уж это на очень чистом асме)))))
     
  5. warsem

    warsem Сеня

    Публикаций:
    0
    Регистрация:
    26 янв 2005
    Сообщения:
    170
    Адрес:
    Германия, NRW
    Ну про отладчик - это уже утрируют) Все таки мало кто сам пересчитывает адреса переменых в стеке)

    Чистый асм - это скорее, когда ты для компиляции только ассемблер используешь. Вообщем тебе уже ответили.
     
  6. Treant

    Treant Member

    Публикаций:
    0
    Регистрация:
    24 май 2009
    Сообщения:
    248
    А вот [esp+4] это чистый асм или нечистый?
    Просто откуда компилятору знать что будет в esp... значит комилятор должен добавить внутрь кода add esp, 4h
    Это как бы фича компилятора и не считается чистым кодом, если ее использовать?
     
  7. WWWorm

    WWWorm New Member

    Публикаций:
    0
    Регистрация:
    8 окт 2009
    Сообщения:
    22
    ну, спасибо!
    о, еще вопрос а можно использовать прерывания bios в виндовс приложениях
     
  8. WWWorm

    WWWorm New Member

    Публикаций:
    0
    Регистрация:
    8 окт 2009
    Сообщения:
    22
    значит можно, но трудно
     
  9. WWWorm

    WWWorm New Member

    Публикаций:
    0
    Регистрация:
    8 окт 2009
    Сообщения:
    22
    попробую найти учебник, спасибо!
     
  10. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    Treant
    [esp+4] - это чистый ассемблер.
    Читайте про способы адресации.
    [есх+еах*4+4] - тоже чистый ассемблер.
     
  11. o14189

    o14189 New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2009
    Сообщения:
    320
    это не несвижского случаем книга?)
     
  12. Microedition

    Microedition Active Member

    Публикаций:
    0
    Регистрация:
    5 июн 2008
    Сообщения:
    814
    Для меня это значит, что не используются вышеназванный invoke,
    условные высокоуровневые конструкции вида if/else, while/for/until,
    различные макросы, без которых в большинстве случаев можно обойтись, и прочий бред.
    В чем смысл программировать на ассемблере, используя их?

    Не можешь писать на ассемблере, не используя вышеназванные конструкции - не пиши
    на нем вообще, переходи на ЯВУ, проще будет.
     
  13. WWWorm

    WWWorm New Member

    Публикаций:
    0
    Регистрация:
    8 окт 2009
    Сообщения:
    22
    Спасибо Microedition!
    Буду стараться не использовать if/else, while/for/until и invoke.....
     
  14. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    Microedition
    есть еще hla
    http://homepage.mac.com/randyhyde/webster.cs.ucr.edu/
    для очень любителей макро-полувысокоуровнево самое то. и бука к нему.
     
  15. FatMoon

    FatMoon New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2002
    Сообщения:
    954
    Адрес:
    Russia
    Для меня писать на "чистом ассемблере" - ПОНИМАТЬ, во что превратятся invoke, .if - .else и "прочий бред". И если то, во что они превратятся, меня устраивает на все 100% - использовать (для изящного и понятного вида исходника), а если у меня задумка заранее убрать в стек пару раз eax, чтобы использовать в нескольких апи-вызовах, или сделать if немного другой, потому что есть смысл - соответственно, не использовать :)))) В любом случае, "чистый ассемблер" существует в голове и под отладчиком, а как ты это запишешь, уже не суть важно. А самый бред - это НЕ использовать invoke, но старательно писать push за push'ем перед вызовом, получая тот же самый результат.
    Я не фанат макросов, но - рано или поздно - штучек 5-8 ты напишешь сам. Это удобно, это облегчает читаемость исходника, это позволяет иногда сэкономить массу времени. Чем свой собственный макрос отличается от invoke? Если ты знаешь, каков будет результат на чистом ассемблере - и именно это тебе надо - используй что угодно и не заморачивайся.
     
  16. hehe

    hehe New Member

    Публикаций:
    0
    Регистрация:
    13 окт 2009
    Сообщения:
    1
    Ну да, зачем писать множество push'ев, когда от использования макроса получится тоже самое, и ты можешь написать и так и так, но использование invoke гораздо короче и понятнее?
     
  17. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.622
    Адрес:
    Russia
    hehe
    тут бегинеры у них свое понимание о чистоте ассемблера
    вобщем FatMoon правильно говорить любовь к макросам появится после накопления опыта - сначала все хотят всЁ посчупать в живую как есть на самом деле а уж потом когда надоест запихнуть в макрос или встроенный или собственоручный
     
  18. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.622
    Адрес:
    Russia
    WWWorm
    это вырванная из контеста фраза - обычно дальше расшифровывается "степень чистоты"
     
  19. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.622
    Адрес:
    Russia
    Тоже не жалуешь стиль Изелиона ?? С его легкой руки эта батва так широко используется в асме под
    винду

    смотрел мой стиль в http://www.wasm.ru/forum/viewtopic.php?id=34428 ??? ваши коментарии ?
     
  20. S_Alex

    S_Alex Alex

    Публикаций:
    0
    Регистрация:
    27 авг 2004
    Сообщения:
    561
    Адрес:
    Ukraine
    Если так пойдет дальше, то может есть смысл (а его нет) отказаться от EQU и TEXTEQU зачем заморачиваться и запоминать непонятные, кемто придуманные WM_COMMAND,WM_CLOSE - это же просто числа. Давайте будем все писать на чистом (не макро) ассемблере, забудем что есть структуры и объединения.
    Т.е. не использовать:
    Я уверен, что будет такой "ГОЛОВНЯК", что мало не покажется.
    FatMoon
    +1

    Уберите из С и С++ все хидеры и макросы со структурами, которые все обычно используют, оставте только сам компилятор. И попробуйте написать мало-мальскую прогу на чистом С. Уж проще на "не чистом" асме.