Ответ на этот вопрос, конечно, «напишите код сборки!».Как я могу стать хорошим на собрании?
Но я могу сделать это: Я знаю, что базовый синтаксис x86, типы регистров и как использовать их, подпрограммы и т.д. и т.п.
Когда я взял класс сборки, каждая уступка имела максимальное количество инструкций что нам разрешили использовать. Если бы мы перешли, тогда мы потеряли бы очки - так это учило нас делать вещи эффективно. Вы знаете, эффективно в том, что, если вы видели, как программа C делает такие вещи, вы можете навязать этому человеку для создания сложного кода.
Для C можно предложить «написать многопоточную программу» или «написать сервер/клиент сокета». Для PHP предложения могут быть «написать личное программное обеспечение для блога». Чтобы узнать синтаксис языка, часто предлагается «эйлер проекта».
Так что мой вопрос (ы):
Какие вещи я могу написать в сборке, которая позволит мне отточить мои сборки и эффективности навыков? Например, я мог бы решить проблему эйлера проекта в x86, но это не помогает мне с конкретными навыками сборки. Какие проектные идеи я могу сделать, которые могут быть действительно закодированы в ассемблере?
Как бы мне расспросить, действительно ли я пишу «хороший» код? Например, с C и сокетами в Интернете есть миллиард учебных пособий, и в моем списке друзей есть миллиард человек, которые могут смотреть на мой код, и есть около миллиарда вопросов о них: так что легче измерить прогресс.
Существуют ли существующие тяжелые проекты сборки, на которые я могу смотреть, чтобы учиться? Или даже части программ, в которых они разбиваются на сборку для [конкретной задачи] ради эффективности?
Какие книги мне следует читать? Блоги людей, которые регулярно смотрят на вещи низкого уровня?
(. Предпочтительно вещи, которые я мог бы сделать на x86 на Linux Я полагаю, что понятия будут перенесены на другие архитектуры.)
Просто любопытно - Как только вы получите «хороший» на собрании, что вы собираетесь с ним делать? В наши дни компиляторы записывают лучшую сборку, чем вы можете, в * почти * каждом случае (за исключением функций процессора, которые не поддерживаются на C, например, чтения битвы переполнения или чего-то еще). – Seth
Rhat сказал: изучите тексты fatmap.txt и fatmap2.txt. Вы найдете их через Google. Они были написаны в 90-х годах и по-прежнему остаются не-плюс-ультра, когда речь заходит о растеризации программного обеспечения.В течение последнего десятилетия были улучшения, но в основном они сосредоточены на аппаратных реализациях. –
@Seth: Если на самом деле «хорошо» при написании сборки, то текущие компиляторы, безусловно, делают * не * лучше писать сборку, чем вы. –