The Bird of Hermes
И ты с первого раза тоже.
Ну-ка ща проверим
Maxim
Ечли че я морально готов во мне энтузиазма хоть отбавляй
КТ315
Почему? Аха
Всмысле "почему"? "системщина, хочу писать компиляторы, хакерство" На чём ты собрался это писать? Пиши на Python херню, что за дурацкие вопросы? Лёгкого пути к званию Великого Программиста нет, тут как со спортом - "а как быстро пресс накачать?" - а нафиг тебе быстро? Быстро - все могут, если бы было быстро - каждый бы с прессом ходил, а ты попробуй медленно, мучайся, докажи свою силу воли, и будет у тебя отличный пресс. Нет - так ходи жирный\ходи Python-скриптером, которого легко заменить.
Maxim
Давай аргументируй более подробно почему асм предпочтительный вариант новичок
Maxim
Ну знаешь советовать и я могу
КТ315
Ну знаешь советовать и я могу
Ну, насоветуй сам себе, и иди.
Maxim
Ты как столяров потомучто правильно а почему потомучто я сказал
Maxim
Я тебя норм спросил а ты даже аргументировать не можешь
Maxim
Хотябы поверхностно
The Bird of Hermes
И ты с первого раза тоже.
#include <stdio.h> void bubble(int* arr, int size){ int buffer = 0; for(int i = 0; i < size - 1; i++){ for(int j = 0; j < size - i - 1; j++){ if(arr[j] > arr[j + 1]){ buffer = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buffer; } } } } int main() { int arr[] = {9, 12, 564, 17, 4, 5, 11, 2, 3}; bubble((int*)arr, sizeof(arr)/sizeof(int)); for(int i = 0; i < sizeof(arr)/sizeof(int); i++) printf("%d\x0A", arr[i]); return 0; } Вот и все
The Bird of Hermes
С первого раза сортировку написал, вывод правда со второго раза получился - зачем-то поставил неправильное условие в цикле вывода
­
Давай аргументируй более подробно почему асм предпочтительный вариант новичок
Как минимум, ты сюда пришёл. Значит, рассматриваешь именно асм как старт.
КТ315
Хотябы поверхностно
1. "системщина" - куча веток, большинство из которых ты не напишешь на Python (или будет криво и убого), и не сможешь написать на С без знаний ассемблера 2. "хацкерство" - всё состоит из ревёрса. Ревёрс javascript, ревёрс Java, ревёрс нативного кода. Ассемблер так или иначе приведёт тебя к пониманию того, как устроены многие виртуальные машины\процессоры\компиляторы\интерпретаторы (в том числе, Javascript), а многие обфускаторы в JavaScript как раз нацелены на углубленное понимание самого интерпретатора JavaScript, и зная только имена функций - ты ничего не "хацнешь". 3. "писать компиляторы" - чтобы скомпилировать - тебе надо знать про ассемблер, как тебе тут ещё обьяснить? Тут вообще нереально, это как "почему 2+2=3?", да не почему, потому что не ровняется. Компилятор == ассемблер, всё.
bilka00
1. "системщина" - куча веток, большинство из которых ты не напишешь на Python (или будет криво и убого), и не сможешь написать на С без знаний ассемблера 2. "хацкерство" - всё состоит из ревёрса. Ревёрс javascript, ревёрс Java, ревёрс нативного кода. Ассемблер так или иначе приведёт тебя к пониманию того, как устроены многие виртуальные машины\процессоры\компиляторы\интерпретаторы (в том числе, Javascript), а многие обфускаторы в JavaScript как раз нацелены на углубленное понимание самого интерпретатора JavaScript, и зная только имена функций - ты ничего не "хацнешь". 3. "писать компиляторы" - чтобы скомпилировать - тебе надо знать про ассемблер, как тебе тут ещё обьяснить? Тут вообще нереально, это как "почему 2+2=3?", да не почему, потому что не ровняется. Компилятор == ассемблер, всё.
По третьему пункту не стоит выключать llvm.
Maxim
Maxim
Ок если с асм начанать то кокого конкретно или какую книгу читать?
bilka00
А я бы асм начинал с университетского курса "архитектура эом"
bilka00
И тогда уже асм под нужную архитектуру изучал.
s54820
А я бы асм начинал с университетского курса "архитектура эом"
Чтобы завязнуть в теории, не имея возможности ничего «пощупать», и забросить всё это, потому что скучно?
КТ315
Ок если с асм начанать то кокого конкретно или какую книгу читать?
В целом, тут одной книгой не отделаться, но так всегда в IT. Начинаешь с ассемблера - ищешь сам интересующие себя вещи - "а как написать на FASM это? А как написать то? А как это пишется вообще?", через 2 года будешь более-менее профессионалом в ассемблере, сможешь писать код достаточно быстро. Потом идёшь дальше - учишь С, С++, C#, веб, как вообще всё устроено, и даже нейросети. Изучаешь вообще всё, что тебе попадётся (но ассемблер от себя далеко не двигаешь). И через примерно 6-7 лет при интенсивном изучении будешь понимать, как можно написать тот или иной проект (компилятор, к примеру), останавливать тебя будет только время - "не, это писать долго, но я уверен, что напишу".
Maxim
Можешь начинать с классики - с Калашникова.
Олег калашников Асемблер это просто?
­
Да, можно и эту книггу.
­
Но если найдёшь с сидюком - там примеры
bilka00
Чтобы завязнуть в теории, не имея возможности ничего «пощупать», и забросить всё это, потому что скучно?
Ну тоесть два варианта: 1) быть макакой которая не понимает как оно происходит и словя из-за этого кучу тупых вопросов в дальнейшем 2) все же покурить немножко теории Имхо - если теория не будет заходить с вопроса "как эта поебень работает" - ассемблер тебе не нужен.
Maxim
х86
Не всм там fasm, nasm, gas
КТ315
Ок если с асм начанать то кокого конкретно или какую книгу читать?
Главное только уметь гуглить. Это твой плот, на нём ты плывёшь. Не умеешь - потонешь, забанят в чатах, раздражать будешь глупыми вопросами, не будет никакого интереса. Ты должен понять принцип, что в интернете можно найти всё, и должен понимать, КАК это найти, как индексируется информация в интернете. Советую изучить OSINT. И ещё немаловажно - не курить, не употреблять алкоголь, и не шыряться. И даже никакие таблетки не использовать, вести здоровый образ жизни, иметь нормальное окружение.
bilka00
Не всм там fasm, nasm, gas
А не пофигли?
bilka00
Отличия косметичны, в общем-то.
s54820
Ну тоесть два варианта: 1) быть макакой которая не понимает как оно происходит и словя из-за этого кучу тупых вопросов в дальнейшем 2) все же покурить немножко теории Имхо - если теория не будет заходить с вопроса "как эта поебень работает" - ассемблер тебе не нужен.
Есть третий: выучить какой-нибудь высокоуровневый язык, как макака. Чтобы не было ступора от простейших вещей. Задаться вот этим самым вопросом «как оно работает», и вот тогда уже узнавать все те страшные вещи, которые высокоуровневые языки прячут. Где-то по пути может случиться такое же «скучно» и «зачем это мне», но тогда действительно просто не нужно.
Maxim
А не пофигли?
На фасме вроде нече серьезного не написать по типу загрузчиков ОС?
КТ315
Спс за зож но я сам разберусь как жить
Тут дело не в "разберусь", а в том, что это залог успеха. Даже если что-то и выучишь - из-за зависимостей в жизни, ты просто будешь слабее человека, который независим.
Aiwan \ (•◡•) / _bot
Maxim
а на другом асме можно? приведи пример
Ну gas пишут на nasm, про фасм касперский говорил как игрушка
Maxim
Ну gas пишут на nasm, про фасм касперский говорил как игрушка
У него статься где то сравнение асесблеров по возмодностям прикольная почитай
Maxim
сколько лет назад?
Там дата не стоит
Maxim
315 почему ты на си не пишешь его как замену асесблеру придумали
Aiwan \ (•◡•) / _bot
315 почему ты на си не пишешь его как замену асесблеру придумали
ага, и видео придумали как замена книг. с таким сравнением далеко не уедешь
bilka00
Для каждого языка своя задача.
s54820
сколько лет назад?
Если бы FASM поддерживал генерацию отладочной информации, его (с некоторой натяжкой) еще было бы можно рассматривать как серьезный инструмент, а так… он остается игрушкой, пригодной для мелких задач типа "hello, world", вирусов, демок и прочих произведений хакерского творчества. Всё ещё актуально.
Maxim
Он не может заменить ассемблер.
Если чо ты готов помогать мне естествено если будут вопросы на которые инете я не найду?
bilka00
Один фиг большинство больших проектов будут писатся на с/++, с применения асма там где он даст достаточный выиграшь от его использования. (Например - компилятор который не умеет использовать какой-то спец-набор инструкций, или делает это очень плохо)
s54820
демок
Сейчас мы ещё на классы будем демки делить. Имеются в виду интры, никто в здравом уме не будет что-то крупное на асме писать.
КТ315
Один фиг большинство больших проектов будут писатся на с/++, с применения асма там где он даст достаточный выиграшь от его использования. (Например - компилятор который не умеет использовать какой-то спец-набор инструкций, или делает это очень плохо)
Только вот кого волнует, на чём пишутся большие проекты? Если сравнивать масштабно - пишут "большинство" на вебе, или Python. Если сравнивать относительно - тогда будет нечестно. Если сравнивать по возможностям - тогда ассемблер чуть выигрывает (если дать на С возможность вставлять интрисинки). Если по скорости кода - тут вообще непонятно, где-то быстрее, где-то медленнее.
bilka00
Вебо-анальные-проекты я в расчёт не беру. И вообще за такое можно хуем по ебалу в чатике получить)
Maxim
Есди допустим писать опен сорс и считать сколько людей смогут к нему подключиться, то выходит С, С++. Если на этих язык есть возможность писать
Maxim
Вроде эта демка целиком на асме https://youtu.be/a7vRufNr414
Похвала человеку который это написал и не свехнулся
­
Похвала человеку который это написал и не свехнулся
3 поляка писало Авторы в подписи: Code: Dalthon, Luke, Wacek Graphics: Bimber, Wacek Music: MCH, Pator
Maxim
Аху*ть
КТ315
Есди допустим писать опен сорс и считать сколько людей смогут к нему подключиться, то выходит С, С++. Если на этих язык есть возможность писать
"подключиться" не зависит от языка. Проект на С, допустим, но компилируется через какую-то огромную систему сборки с миллиард ошибок, ты сможешь к такому подключиться? А если проект на ассемблере, и компилируется одной строкой?
s54820
Вроде эта демка целиком на асме https://youtu.be/a7vRufNr414
Это не фасм, это спектрумы со своей атмосферой, где можно унижать компиляторы из-за ограничений цпу и платформы в целом, и там наверняка есть некоторое количество ресурсов.
КТ315
По-моему, он там что-то другое говорит.
Maxim
В основном так и поьучается С, С++
Maxim
По факту Nasm это же не чистый асемблер, вот Avr asm это асм, а nasm на Си препроцессоре чтоли сделан
usernameak
он идёт в комплекте с гнутым тулчейном