я в ассемблере 0

Тема в разделе "WASM.BEGINNERS", создана пользователем saper, 27 май 2009.

  1. saper

    saper New Member

    Публикаций:
    0
    Регистрация:
    27 май 2009
    Сообщения:
    9
    Хотя я програмирую на паскале, С++, немного бейсик, а в ассемблере дуб, с чего начать, вроде писал простую прогу как ее компилировать, что посоветуете?
    да и еще вопрос чайника: Чем отличается написанная програма на ассемблере, от програмы вскрытой дизассемблером?
     
  2. Chaynik

    Chaynik New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2009
    Сообщения:
    23
    http://kalashnikoff.ru/
     
  3. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    посоветую включить мозг и начать пользоваться поиском. Если не получится, то инъекция яда внутривенно.

    Это ж каким надо быть дауном, чтобы НА ВАСМЕ мля не найти ничего по ассемблеру...
     
  4. MirrorBlack

    MirrorBlack Алексей

    Публикаций:
    0
    Регистрация:
    21 июн 2008
    Сообщения:
    249
    Адрес:
    Moscow
    Мы все учились понемногу чему нибудь и как нибудь...

    Вобще поражает с каким маниакальным упорством создают такие темы минимум раз в неделю. saper Ничего личного :)
    Наверно админам давно пора открыть ветку с названием "Я ничего не знаю - что мне делать?".
    Начать ты должен с того, чтоб понять зачем тебе нужен ассемблер.
    Если расчитываеш писать мега крутые программы, тебя ждёт разочарование, потому как в ближайшем будующем тебе это не светит.
    Будеш писать под windows - будеш использовать API (почти вся документация на ненашем). И потом, если совсем глубоко копнуть использование API сродни использованию компонентов дельфи (ой чуствую после этих строк меня с г...ном съедят). По сути ты используеш то, что написал "добрый дядя".
    Под DOS для комфортной работы - прерывания DOS и BIOS (тот же "добрый дядя").
    На сайте любят алегории, не удержусь и я:
    Покупая машину ты врядли будеш изучать как работают её механизмы. Просто сдаш/купиш права и поедеш. А вот когда чего сломается займёшся изучением узла.
    Ассемблер - знание как работают узлы машины.
    Стоит ли изучать асм если ездить не научился :)
     
  5. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Я тоже с басика начинал, дизасмил спектрумовскую ось(интерпретатор басика).
     
  6. saper

    saper New Member

    Публикаций:
    0
    Регистрация:
    27 май 2009
    Сообщения:
    9
    спс за помощь, вот есть у меня TASM, FASM, а хз как ими пользоватся, да й хелпа там нету, для меня изучение ассемблера это поиск ошыбок в програмах, програмы писать крутые на ассемблере думаю это жесть, как для меня,
     
  7. Chaynik

    Chaynik New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2009
    Сообщения:
    23
    почитай калашникова. Там все доступно написано. А потом сюда, читать и учиться программить под win32:
    http://wasm.ru/publist.php?list=1
     
  8. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Начни с ассемблерных вставок в том же паскале и\или в С++
     
  9. murder

    murder Member

    Публикаций:
    0
    Регистрация:
    3 июн 2007
    Сообщения:
    628
    leo
    +1
     
  10. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    saper
    зачем тебе этом asm? Пиши свои программы на с, включай опцию оптимизировать по объему кода (или скорости). Мало кто соптимизирует лучше чем твой компилятор. А если разобраться глубже с его настройками, то ...
    C&С++ - rule!!!
     
  11. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    _sheva740
    уйди, тролль
     
  12. featurelles

    featurelles New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2009
    Сообщения:
    562
    _sheva740
    Компилятор сможет лучше распределить переменные по регистрам, но не сгенерировать подходящий алгоритм для конкретной задачи. А как известно, лучшая оптимизация достигается при применении подходящего алгоритма для конкретной задачи. Другими словами, при кривых руках..ни один компилятор код не вытянет.
    Полагаю..у людей знающих ассемблер, с разработкой алгоритмов, гораздо лучше чем у программистов прикладников... си.
     
  13. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    _sheva740
    Смотря что за программы. Например большинство тех задач, котороые решаю я, невозможно без асма выполнить. Например какаялибо обработка прерываний, захват контекста и тп.
     
  14. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    ага. щаз. даже при оптимизации максимум будет использовать 3, а 4 оставит под какие-то мусорные структуры требующиеся для работы с классами или еще какой белибердой. извините, но это даже у современных компиляторов осталось от 16-битки. а про .net я вообще молчу. эти программы даже запускать противно, не то что там даже дизассемблировать
     
  15. featurelles

    featurelles New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2009
    Сообщения:
    562
    max7C4
    глупость ты сказал.
    Я б не стал говорить это "Компилятор сможет лучше распределить переменные по регистрам" еслиб не знал 100% , что это так. Если ты имеешь хоть небольшое представление о разработке компиляторов, то должен бы это знать. ( попробуй написать свой компилятор..хоть какой убогий. Это самая базовая методика оптимизации кода (распределение переменных по регистрам)). + в хорошем компиляторе может быть оптимизация команд, наподобие .. (r1 or r2) - (r1 and r2) = r1 xor r2 и тд..
    Такчто если хотите от асма получить производительности для проги, то пишите алгоритмы как надо. А так, асм лучше применять конечно-же для таких вещей: вирусы, рутики, криптография, эксплойты, защита информации, программинг аппаратуры(bios там всякие...).и т.д.

    чёрт...а ведь я себя считаю новичком в программинге....
     
  16. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    featurelles
    Вот и не торопись с поспешными выводами на основании прочтения книг рекламного характера :))
    Вот пример когда алгоритм "одинаково" написанный на С и асм, на С давал совсем не оптимальное расположение команд и использование регистров, правда потом в другом топике (не помню как его искать) мне тут подсказали, что получить от MSVC гораздо лучшее совпадение с асм вариантом можно, но для этого нужно знать асм и уметь "структурировать" С программу "подсказывая" компилятору низкоуровневую последовательность действий :))
     
  17. featurelles

    featurelles New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2009
    Сообщения:
    562
    Я не на основании прочитанных книг выдаю информацию (ну может и выдаю, но редко). А из практики.
    Могу только сказать) , что компилятор , компилятору рознь.
    Например в дельфи, компиль делает код, какбы это сказать....не оптимальным чтоли. К примеру три последовательности xor eax, eax, xor eax, eax, xor eax, eax ... и это не обфускация, а именно компилируемый код.
    Но согласитесь, не все компиляторы, так тормозят.
     
  18. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    featurelles
    Ну дык и я ссылку на пример реальный привёл :) и этот пример показывает нечто другое ;)
     
  19. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    программист который пишет на ассемблере код который будет потом читать, старается написать код так чтобы его можно было прочитать, поэтому например старается возвращать через eax[:edx] хранить счетчик в ecx, базу в ebx и т.п.
    компилятор же не компилирует код чтобы его читали, поэтому он может перемешать регистры избавившись от лишних временных переменых, push\pop
    + компилятор может инлайнить подпрограммы оптимизируя их вместе с кодом куда они инлайнятся
    + оптимизировать if\switch до O(log(n))
    +...

    но зато есть много других недочетов
     
  20. featurelles

    featurelles New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2009
    Сообщения:
    562
    Y_Mur
    Ну дык в этом посте, нашли на чём тестить )).... vs2005
    Я уверяю, качественный компилятор...и я повторюсь , именно качественный, может оптимизировать программу, не хуже чем эксперт в этой области. ( хоть и допускаю..что могут быть погрешности в выборе оптимального алгоритма. ).
    И ещё от себя. Ручная работа, ценится больше чем произведенная компьютером. Такчто, всёже можно сделать программу на асме шустрее чем на си.