изучение Ассемблера с целью: расширение знаний об устройстве ПК на практике, возможно в дальнейшем вставка кода на Asembler-e в исходный код на Rust, Си(Знаю, что GCC и Rustc используют синтаксис AT&T непосредственно в исходном коде Си, Rust). Сталкивался с FASM, NASM. У каждого из них Intel синтаксис как я понял. Андрей Викторович Столяров в своей книге про Ассемблер на UNIX использует NASM, Аблязов Руслан Зяфарович в своей книге учит FASM, Крис Касперски в "Искусство Дизассемблирования"(2008), считает FASM "игрушечным" ассемблером. Цитата: "неординарный и весьма самобытный, но увы, игрушечный ассемблер" (стр 82.). В связи с этим у меня возникло несколько вопросов: 1) По Вашему личному мнению на каком Ассемблер-е лучше всего учиться писать программы(более углубленно)? 1.1) Какой Ассемблер лучше всего учить, что бы я мог писать на любом Ассемблере, просто открыв документацию по нему? Благодарю за внимание.
Если линукс, то gas
На FASM.
GAS более полезен в данном случае будет, раз уж вставки в C и подобные яп
FASM
90% знаний ассемблера состоят из архитектуры системы команд процессора и алгоритмов. FASM наиболее простой способ начать писать программу и добиться результата. По крайней мере под Линуксом. А понимание разницы с другими ассемблерами потом само приложится.
Что-то все так его рекламируют, что стало интересно посмотреть. Проблема в том, что в дикой природе кроме gas просто ничего не встречается, и зачем изучать что-то другое мне не очень понятно
Как раз только недавно скидывал реализацию нейросети на FASM (две реализации). TinyPE недавно скидывал, тоже на FASM писан. На нём как раз больше всего проектов, именно написанных на чистом ассемблере. А вот GAS зачастую как вставочки используют, или линкуют с С-кодом, и это мне вообще непонятно.
так вставки это почти 99% всего что на асме пишут
Gas - это системный ассемблер. Все утилиты: objdump и прочие работают именно с ним. Банально опция компилятора -S выдаст gas. Все профилировщики работают с gas. Поэтому я просто ни разу на промышленных проектах ничего другого не видел
Не совсем. Но я не в том плане, что вставки не нужны. А в том, что GAS не подходит тем, кто хочет писать на чистом ассемблере. Его как раз после FASM нужно использовать.
Ну, если не брать го, то хотелось бы пример
GAS уж очень специфичен. Он сделан не для человека, а для компьютера, а-ля, например, json. А в FASM хорошо конвертируются старые материалы по TASM и т.п.
Я смотрю чисто с практической точки зрения. Все работают с gas
Ну, можно не игрушечный пример привести? Я выше написал, что кто-то nasm тянет, но при работе с промышленным кодом вероятность встретить не gas околонулевая
Матросов на контейнеровозы требуется гораздо больше, чем и на парусные яхты. И работа там сильно разная. Но даже планируя в дальнейшем работать на контейнеровозе полезно походить сначала на яхте.
Обсуждают сегодня