должен заказать и предложение веб-сайта для усовершенствованного низкоуровневого программирования

Я хочу изучить все усовершенствованные детали низкоуровневого программирования, таким образом, я хочу смочь к

  • Изучите усовершенствованный c/c ++
  • Оптимизируйте мой код с и без встроенного ассемблерного кода
  • Поймите внутренности exe, dll, потока, процесса
  • Effeciently используют технологии как SSE, 3DNow, MMX
  • Исполняемые файлы/библиотеки Debug&disassemble и понимают то, что продолжается внутри
  • Различия/функции различных CPU/платформ как x86, MIPS, ARM, PowerPC
  • Моя первая цель является x86 основанной на Windows системой. После этого, прибывает основанные на Linux платформы. И встроенные системы следуют. Любые книги, веб-сайты, учебные руководства, форумы, сообщества, которые дают мне, что я ищу НЕПОСРЕДСТВЕННО, прекрасны.
    Спасибо..

    5
    задан Taz 25 February 2010 в 01:29
    поделиться

    5 ответов

    Если

    1. ветви, в которые требуется объединить последние основные фиксации, не публикуются И
    2. вы хотите, чтобы все основные фиксации находились в других ветвях

    , то их можно просто изменить на основные после обновления основных записей. Этот небольшой сценарий может сработать, если вы используете оболочку 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)

    1
    ответ дан 15 December 2019 в 06:24
    поделиться

    Может быть, вам пора завести аккаунт на http://my.safaribooksonline.com/ , отключите телефон на пару недель, загрузите холодильник Jolt and Funyuns, попрощайтесь своей семье и друзьям, а затем прочтите как можно больше книг. У них есть довольно обширная библиотека, охватывающая большинство тем, которые вы ищете.

    1
    ответ дан 15 December 2019 в 06:24
    поделиться

    это многовато, чему вы хотите научиться. :)

    Я бы посоветовал начать с базовой архитектуры ядра ARM v4. это достаточно просто для понимания. затем перейти к 8086, а затем перейти к более поздним версиям ARM и x86. ARM относится к типу RISC. и x86 типа CISC. вы никогда не сможете изучить все процессоры. (например, вы никогда не сможете выучить все языки программирования) , но знание одного или двух языков позволит понять любой другой, с которым вы столкнетесь. нет ничего особенно объектно-ориентированного о низкоуровневом программировании. поэтому не имеет значения, используете ли вы C ++ или C. получите полный симулятор системы, такой как gxemul или qemu. попробуйте выполнить программу сборки hello world - (без использования библиотек времени выполнения процессора - вы хотите, чтобы это было сложно, не так ли?) другие могут помочь вам в отношении SSE, MMX и т. д.

    проверить infocenter.arm.com для сборки ARM спецификации языка и архитектуры.

    0
    ответ дан 15 December 2019 в 06:24
    поделиться

    I Мы всегда считали «Компьютерные системы: взгляд программиста» ( http://www.amazon.com/Computer-Systems-Programmers-Randal-Bryant/dp/013034074X ) очень хорошей книгой.В нем содержится большой объем информации об архитектуре компьютера, и он научил меня управлению памятью, компиляции и компоновке (а также тому, как отлаживать ошибки компоновки), оптимизации, перемещаемому объектному коду и некоторым элементам архитектуры более низкого уровня, например, как идти. об изучении информатики на низком уровне (например, что такое внутреннее устройство процессора). Есть много хороших упражнений, начиная от примеров оптимизации и заканчивая реализацией переполнения буфера. В нем обсуждается, как написать встроенный ассемблерный код (и заставить его работать). Есть даже раздел о написании кода для вымышленного (Y86) процессора.

    Однако есть одно предостережение: он, как правило, в значительной степени сосредоточен на линейке процессоров Intel (на мой взгляд). Если вы хотите что-то, что немного больше похоже на работу, скажем, с линией ARM, тогда вы, вероятно, захотите воспользоваться рекомендациями других выше.

    0
    ответ дан 15 December 2019 в 06:24
    поделиться

    То, о чем вы просите, нельзя найти в одной книге. Многое из того, что вы упомянули, лучше всего можно найти в руководствах пользователя или функциональных спецификациях для различных процессоров. Я рекомендую начинать с понимания основной архитектуры x86 и работать оттуда. Одно из старых руководств Intel 386 или 486 может стать хорошим началом.

    Я не знаю ни одного веб-сайта для такого рода информации.

    1
    ответ дан 15 December 2019 в 06:24
    поделиться
    Другие вопросы по тегам:

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