169 похожих чатов

Всем привет. Я пользователь ОС на базе GNU/Linux. Мне интересно

изучение Ассемблера с целью: расширение знаний об устройстве ПК на практике, возможно в дальнейшем вставка кода на Asembler-e в исходный код на Rust, Си(Знаю, что GCC и Rustc используют синтаксис AT&T непосредственно в исходном коде Си, Rust). Сталкивался с FASM, NASM. У каждого из них Intel синтаксис как я понял. Андрей Викторович Столяров в своей книге про Ассемблер на UNIX использует NASM, Аблязов Руслан Зяфарович в своей книге учит FASM, Крис Касперски в "Искусство Дизассемблирования"(2008), считает FASM "игрушечным" ассемблером. Цитата: "неординарный и весьма самобытный, но увы, игрушечный ассемблер" (стр 82.). В связи с этим у меня возникло несколько вопросов: 1) По Вашему личному мнению на каком Ассемблер-е лучше всего учиться писать программы(более углубленно)? 1.1) Какой Ассемблер лучше всего учить, что бы я мог писать на любом Ассемблере, просто открыв документацию по нему? Благодарю за внимание.

17 ответов

12 просмотров

Если линукс, то gas

На FASM.

GAS более полезен в данном случае будет, раз уж вставки в C и подобные яп

FASM

90% знаний ассемблера состоят из архитектуры системы команд процессора и алгоритмов. FASM наиболее простой способ начать писать программу и добиться результата. По крайней мере под Линуксом. А понимание разницы с другими ассемблерами потом само приложится.

Alexander Morozov
90% знаний ассемблера состоят из архитектуры систе...

Что-то все так его рекламируют, что стало интересно посмотреть. Проблема в том, что в дикой природе кроме gas просто ничего не встречается, и зачем изучать что-то другое мне не очень понятно

Как раз только недавно скидывал реализацию нейросети на FASM (две реализации). TinyPE недавно скидывал, тоже на FASM писан. На нём как раз больше всего проектов, именно написанных на чистом ассемблере. А вот GAS зачастую как вставочки используют, или линкуют с С-кодом, и это мне вообще непонятно.

КТ315
Как раз только недавно скидывал реализацию нейросе...

так вставки это почти 99% всего что на асме пишут

КТ315
Как раз только недавно скидывал реализацию нейросе...

Gas - это системный ассемблер. Все утилиты: objdump и прочие работают именно с ним. Банально опция компилятора -S выдаст gas. Все профилировщики работают с gas. Поэтому я просто ни разу на промышленных проектах ничего другого не видел

Mixail Frolov
так вставки это почти 99% всего что на асме пишут

Не совсем. Но я не в том плане, что вставки не нужны. А в том, что GAS не подходит тем, кто хочет писать на чистом ассемблере. Его как раз после FASM нужно использовать.

КТ315
Прямо "все"?)

Ну, если не брать го, то хотелось бы пример

Alex
Что-то все так его рекламируют, что стало интересн...

GAS уж очень специфичен. Он сделан не для человека, а для компьютера, а-ля, например, json. А в FASM хорошо конвертируются старые материалы по TASM и т.п.

Alexander Morozov
GAS уж очень специфичен. Он сделан не для человека...

Я смотрю чисто с практической точки зрения. Все работают с gas

КТ315
Не "все".

Ну, можно не игрушечный пример привести? Я выше написал, что кто-то nasm тянет, но при работе с промышленным кодом вероятность встретить не gas околонулевая

Alex
Я смотрю чисто с практической точки зрения. Все ра...

Матросов на контейнеровозы требуется гораздо больше, чем и на парусные яхты. И работа там сильно разная. Но даже планируя в дальнейшем работать на контейнеровозе полезно походить сначала на яхте.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта