Я хочу изучить все усовершенствованные детали низкоуровневого программирования, таким образом, я хочу смочь к
Если
, то их можно просто изменить на основные после обновления основных записей. Этот небольшой сценарий может сработать, если вы используете оболочку Unix. При этом каждая ветвь преобразуется в главную.
for BRANCH in `ls .git/refs/heads`; do git rebase master $BRANCH; done
-121--2481856- Кажется немного странным, что fs. Позиция из решения дурака не сработала.
Эквивалент будет
fs.Seek(0, SeekOrigin.Begin);
В качестве альтернативы
вместо того, чтобы использовать тот же файловый поток:
//OrigPath is the path you're using for the FileReader
System.Xml.XmlWriter writer = System.Xml.XmlWriter.Create(OrigPath);
xmlDoc.Save(writer);
writer.Close();
-121--4434974- Несколько рекомендаций из моих личных любимых, чтобы начать:
«Эффективные C++: 55 Конкретные способы улучшения ваших программ и проектов (3-е издание)» - Скотт Мейерс
«В Машине» - Джон Стокс
«Восхищение Хакера» - Генри С. Уоррен
«Поваренная книга Оптимизации программного обеспечения» - Ричард Гербер
«Intel® 64 и Руководство разработчика программного обеспечения Архитектуры IA-32, Том 2A: Ссылка Набора команд, A-M» (253666-021)
«Intel® 64 и Руководство разработчика программного обеспечения Архитектуры IA-32, Том 2B: Ссылка Набора команд, N-Z» (253667-021)
Может быть, вам пора завести аккаунт на http://my.safaribooksonline.com/ , отключите телефон на пару недель, загрузите холодильник Jolt and Funyuns, попрощайтесь своей семье и друзьям, а затем прочтите как можно больше книг. У них есть довольно обширная библиотека, охватывающая большинство тем, которые вы ищете.
это многовато, чему вы хотите научиться. :)
Я бы посоветовал начать с базовой архитектуры ядра ARM v4. это достаточно просто для понимания. затем перейти к 8086, а затем перейти к более поздним версиям ARM и x86. ARM относится к типу RISC. и x86 типа CISC. вы никогда не сможете изучить все процессоры. (например, вы никогда не сможете выучить все языки программирования) , но знание одного или двух языков позволит понять любой другой, с которым вы столкнетесь. нет ничего особенно объектно-ориентированного о низкоуровневом программировании. поэтому не имеет значения, используете ли вы C ++ или C. получите полный симулятор системы, такой как gxemul или qemu. попробуйте выполнить программу сборки hello world - (без использования библиотек времени выполнения процессора - вы хотите, чтобы это было сложно, не так ли?) другие могут помочь вам в отношении SSE, MMX и т. д.
проверить infocenter.arm.com для сборки ARM спецификации языка и архитектуры.
I Мы всегда считали «Компьютерные системы: взгляд программиста» ( http://www.amazon.com/Computer-Systems-Programmers-Randal-Bryant/dp/013034074X ) очень хорошей книгой.В нем содержится большой объем информации об архитектуре компьютера, и он научил меня управлению памятью, компиляции и компоновке (а также тому, как отлаживать ошибки компоновки), оптимизации, перемещаемому объектному коду и некоторым элементам архитектуры более низкого уровня, например, как идти. об изучении информатики на низком уровне (например, что такое внутреннее устройство процессора). Есть много хороших упражнений, начиная от примеров оптимизации и заканчивая реализацией переполнения буфера. В нем обсуждается, как написать встроенный ассемблерный код (и заставить его работать). Есть даже раздел о написании кода для вымышленного (Y86) процессора.
Однако есть одно предостережение: он, как правило, в значительной степени сосредоточен на линейке процессоров Intel (на мой взгляд). Если вы хотите что-то, что немного больше похоже на работу, скажем, с линией ARM, тогда вы, вероятно, захотите воспользоваться рекомендациями других выше.
То, о чем вы просите, нельзя найти в одной книге. Многое из того, что вы упомянули, лучше всего можно найти в руководствах пользователя или функциональных спецификациях для различных процессоров. Я рекомендую начинать с понимания основной архитектуры x86 и работать оттуда. Одно из старых руководств Intel 386 или 486 может стать хорошим началом.
Я не знаю ни одного веб-сайта для такого рода информации.