Другие языки программирования и технологии

Какие есть хорошие обучающие книги по ассемблеру?

Сам для себя выбрал FASM
Испробовал по мелочёвке (hello world, выдвинуть дисковод)
И воодушевился
Ну и собственно решил учить
Я понимаю, многие могут начать спамить что то типа:
Ассемблер сложный, он того не стоит, он жудко старый, си плюсы лучше
Но давайте будем честны, те кто так пишут забили на него из-за сложности в начале обучения.
Ну и на этом моменте я хочу вас попросить пару хороших книг по этому языку (желательно что бы в книге использовали FASM)
Да, я понимаю что я могу загуглить, но и вы поймите что хорошие вещи не всегда индексируются поисковиками
И да, книги можно и на английском, я в этом плане неприхотлив
Чег-чего, а недостатка знаний по асму
не наблюдается
Виталий Кононов
Виталий Кононов
75 692
Лучший ответ
Я изучал классику - Л. Скэнлон, "Программирование на языке ассемблера", Москва, Радио и связь, 1989 год. Тогда издавали не брошюрки для чайников, а настоящие ученые пособия.
Ну и очень помогла книга Роберта Журдена "Справочник программиста на персональных компьютерах фирмы IBM" в 10 частях. Там есть всё - от пресловутого "HELLO" до непосредственного программирования карты видеопамяти в компьютерной графике.
Вряд ли эти знания тебе когда-либо пригодятся. Готов потратить уйму времени на хлам?)
Если нет, но очень хочется ассемблер - изучи ассемблер для pic, avr, stm32. Там куда больше шансов найти ему реальное применение, а не написать очередную программу для доса, которая никому не нужна.

P.S. Обязательно найдутся те, кто скажут асм нужен для драйверов. Да, но... 99% кода драйверов - си. Ассемблер встречается минимально, иначе перенос этого драйвера куда-либо станет той ещё занозой в заднице. А ещё есть все шансы обнаружить, что знаешь не тот ассемблер.
Жоламан Тоймаханбетов Кстати хочу поизучать ассемблер cortex-m3 а в частности stm32. Платка то есть stm32f103c8t6.
Жоламан Тоймаханбетов Не пробовала изучать? Может что посоветуешь?
Алмаз Ахметов На мой взгляд, изучение Ассемблера нужно главным образом для лучшего понимания работы компьютера и низкоуровнего программирования. Но лучше не изучать Ассемблер как первый ЯП. Согласен, что для практического применения Ассемблер редко где нужен. Может делать какие-то быстрые расчёты при помощи всяких SSE, AVX, FMA. Но для этого надо ещё математикой владеть.
Денис Климовцов Ассемблер мне нужен что бы сделать несколько максимально быстрых и маловесящих нееронок после объединив их в один ИИ
Да, большинство будет говорить что это того не стоит, что это сложно, но скорее всего никто это даже не пробовал
По самому ассемблеру учить почти нечего - что сам ассемблер, что его язык простейшие. Большую часть всех этих книг составляет описание архитектуры процессора. Раз английский язык не проблема, то рекомендую официальный мануал от Intel:
https://software.intel.com/en-us/articles/intel-sdm
или AMD (см. раздел "AMD64 Architecture"):
https://developer.amd.com/resources/developer-guides-manuals/
А всё что нужно знать о самом FASM описано в его справочной документации (файл fasm.pdf, лежит в архиве вместе с ассемблером).
Bekjan Taalaibekov
Bekjan Taalaibekov
24 295
Начинал изучать ассемблер при помощи пакета MASM32 SDK. В интернете легко гуглится. Советовал бы начинать изучение именно с него, может даже дальше и не понадобиться (fasm после него тоже пробовал). В MASM есть множество примеров, можно по ним учиться. Начинал изучать по книге А. Крупник "Изучаем ассемблер" https://sharpened.ucoz.ru/lib/study_assembler.pdf. Сейчас понимаю что бывают лучше, но как первый старт весьма неплохая книга.
"Ассемблер сложный, он того не стоит, он жудко старый, си плюсы лучше" - он сложный для понимания, но потом где то даже легче остальных языков (меньше знать нужно). Я бы посоветовал его понимать, так как это основа с которой остальные языки легче будет понять.
"Но давайте будем честны, те кто так пишут забили на него из-за сложности в начале обучения." - буду честен, я не смог написать на ассемблере что нибудь стоящее, только микропрограммки для понимания как работает процессор. Но говорят так не из за того что в начале есть сложности в обучении и потому переходят на более легкий язык, а потому что для реализации хоть какого-то функционала нужно много, даже очень много, писать (большие объемы кода для реализации даже очень маленькой задачи, посмотрите на исходники fasm)!

P.S. Изучить стоит, очень полезен для понимания как работает процессор. Но писать какие то проги на языках более высокого уровня С или С++.(ИМХО)
Максим Каценя
Максим Каценя
15 408
Питер Абель "Язык Ассемблера для IBM PC и программирования"
Мне кажется NASM лучше.
Иван Касавцев
Иван Касавцев
5 333
Денис Климовцов Инфы хоть и больше, но в основном колличестве источников пишут что FASM быстро развивается, и то что он уже намного лучше того же NASM
Лучше не по книгам - а по запросам из интернета. В интернете все есть.
SA
Sardor Ashirov
3 790
Алмаз Ахметов Для начала всегда нужна книга или онлайн курс. Ты видел сколько страниц в книгах? Сколько надо гуглить, чтоб нагуглить такой объём?