Из чего лучше начать изучение ассемблера?

Тема в разделе "WASM.BEGINNERS", создана пользователем Sanya2k, 15 апр 2019.

  1. Sanya2k

    Sanya2k New Member

    Публикаций:
    0
    Регистрация:
    15 апр 2019
    Сообщения:
    1
    Здраствуйте. Я си программист уже много лет, но на ассемблере очень мало писал, можно считать, что знаю только синтаксис. Хочу написать маленький загрузчик для начала, но не уверен что это хорошая идея.А что бы вы посоветовали для начала? Какую программу и какой ассемблер?
     
  2. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.241
    бери gcc == сможешь получать асм листовки своего си-кода + удобные асм-вставки можно делать в си-портянку + у гсс исходники доступны, тч сможешь свои фиксы добавлять по мере надобности.
     
  3. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
  4. sn0w

    sn0w Active Member

    Публикаций:
    0
    Регистрация:
    27 фев 2010
    Сообщения:
    958
    я бы еще посоветовал генерировать ассемблерный листинг с модулей, которые компилишь (компилер должен поддерживать такую фичу), и заглядывать в него - как оно выглядит на самом деле. только не забудь выключать все оптимизации и рантайм-проверки - так оно смотрится ближе к телу
     
  5. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.241
    всё можно набрать на гитах (пусть даже на сишечке) и от компиля получить асм-портянку, а потом ползай по ней отладчиком.

    ЗЫ.. ваще, пользовать асм везде и вся == затея пустая: он имеет смысл лишь там, где компиль откровенно не тащит и то разные асм-трюки можно запихнуть в сам же компиль иль использовать альт решения. когда я решил обогнать стандартный qsort спорта ради, у меня это получилось лишь опосля жёстких извратов с векторными регистрами + морф кода.
     
    Последнее редактирование модератором: 17 июл 2019
  6. Коцит

    Коцит Active Member

    Публикаций:
    0
    Регистрация:
    31 янв 2017
    Сообщения:
    130
    бери фасм,
    масм хоть и 64-битный, много инструкций не понимает
     
  7. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.241
    sn0w нравится это.
  8. sn0w

    sn0w Active Member

    Публикаций:
    0
    Регистрация:
    27 фев 2010
    Сообщения:
    958
    годный совет кстати, единственный минус - посмотреть сгенерённый объектный код нет возможности
     
  9. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
    Принял ты трудное решение податься в ассемблерщики, заходишь такой поинтересоваться с какой стороны в это влезть, а тут "вот тебе гцц", "вот тебе онлайн-декомпилер" и вообще "ассемблер гавно". Стать "круче половины васма" эта половина тебе просто не даст :i-m_so_happy::sarcastic_hand:
     
    Последнее редактирование: 18 апр 2019
    2Hard2Forget нравится это.
  10. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.241
    f13nd, твой сарказм, конечно, понятен. но, если по чесноку, сколько ты можешь указать областей, чтобы прям фасм рулил? вон дело-то куды зашло https://www.icpdas-usa.com/3CLanguageControllers.php :)
     
  11. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
    Какие-то три любительские ардуины. Я наверное открою америку, если скажу, что прошивки для подавляющего большинства микроконтроллеров пишутся на цэ. Под каждую серию обычно есть всего один компилер, часто не приобретя чего-нибудь у разработчика ты этот тулчейн получить не можешь. При чем тут рулит/не рулит фасм? Рулит петон, фасм так, безделушка для искушенных. Вопрос-то был поставлен о том, какой ассемблер выбрать и с чего начинать.
     
  12. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.241
    ну-так о том и речь, гцц == лучший выбор: там встроенная поддержка асма на различные архи + опять-таки развитая возможность получать асм-портянку из сишечки. Ведь, Товарищ с сишечкой знаком, тч переход на асм получается более плавный. Вообще, асм (пожалуй) незаменим в плане работы с векторными регистрами, оптимизацией конвейера команд (3oe == out-of-order exec) и морфянка тоже мб полезна для скорости.
     
  13. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
    Способов получать асм-портянку из сишечки существует куча, это возможно отличный способ изучать портянки, а не ассемблер.
     
    2Hard2Forget нравится это.
  14. Ronin_

    Ronin_ Active Member

    Публикаций:
    1
    Регистрация:
    24 дек 2016
    Сообщения:
    252
    UbIvItS, а ещё там A&T или он же GAS.
     
  15. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.241
    наше дело предложить, а ТС уж сам решит, что ему удобней будет :)
    Ты не недолюбливаешь at&t??? это уж из разряда привычек, но в деле гцц/гас по-любому будет более лучшим выбором == не только же на интел/амд свет клином сошёлся.
     
  16. Ronin_

    Ronin_ Active Member

    Публикаций:
    1
    Регистрация:
    24 дек 2016
    Сообщения:
    252
    Приведите аргументы в чем преимущество gas.
     
  17. q2e74

    q2e74 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2018
    Сообщения:
    999
    асм-портянку из гсс можно и в интеловской нотации получить. Загрузчик сразу может и не стоит, сперва просто освоиться с системными вызовами, реализовав телнет или http клиента и сервер. Что-нибудь из IPC (Inter Process Communication) обязательно попробовать. Что-то c ld_preload (как пример habr.com/ru/post/106107 ), только силами выбранного асма. Реализовать то, что реализовано в volatility framework , выборочно, конечно. Вообщем, возьмите книжку the art of memory forensic, если вам нужны идеи - само то.

    p.s. вам скорее требуется изучение архитектуры ос, а не асма как такового. имхо.
     
    CKAP нравится это.
  18. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.241
    + какая вероятность, что фасм не прикажет долго жить?
     
  19. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
    12 лет пользуюсь, ни разу приказа не прозвучало. В новом фасме вообще убран встроенный ассемблер. После доведения самого движка до приличного состояния, ему уже некуда будет расти. Новые наборы инструкций можно будет добавить самому или скачать что комьюнити выложат.
     
  20. q2e74

    q2e74 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2018
    Сообщения:
    999
    имхо, если писать, а не читать, то либо фасм, либо масм. Смотря какая ось. Если читать, то ваще пофиг, что показывает отладчик, то и норм. Со стороны опкодов ассемблерная разница не видна.