2010-02-24 8 views
5

ich alle erweiterten Details von Low-Level-Programmierung lernen wollen, so kann ich benötigen Buch & Website-Vorschlag für erweiterte Low-Level-Programmierung

  • lernen in der Lage sein wollen, erweiterte c/C++
  • Optimieren Sie meinen Code mit und ohne Inline-Assembler
  • verstehen Sie die Interna einer exe, dll, Thread, Prozess
  • effeciently Einsatz von Technologien wie SSE machen, 3DNow, MMX
  • Debug & disassemble ausführbaren Dateien/Bibliotheken und verstehen, was in
  • ist los
  • Die Unterschiede/Merkmale von verschiedenen CPU/Plattformen wie x86, MIPS, ARM, PowerPC
  • Mein erstes Ziel ist ein x86 Windows-basiertes System. Danach kommt Linux-basierte Plattformen. Und eingebettete Systeme folgen. Alle Bücher, Websites, Tutorials, Foren, Gemeinschaften, die mir geben, was ich DIREKT suche, ist in Ordnung.
    Dank ..

    +0

    Warum bist du so spezifisch? Gibt es eine bestimmte Problemdomäne, die Sie im Sinn haben? –

    +0

    nein, nur Enthusiasmus – Taz

    +0

    registrieren, um online Zugang zu buchen: http://www.pearsonhighered.com/educator/course/C-Intermediate-Advanced-Programming/91054902.page – lsalamon

    Antwort

    1

    Was Sie fragen, kann nicht in einem einzigen Buch gefunden werden. Vieles von dem, was Sie erwähnt haben, finden Sie am besten in Benutzerhandbüchern oder Funktionsspezifikationen für verschiedene Prozessoren. Ich empfehle, mit dem Verständnis des x86-Kernbogens zu beginnen und von dort aus zu arbeiten. Eines der alten Intel 386 oder 486 Handbücher könnte ein guter Anfang sein.

    Ich kenne keine Websites für diese Art von Informationen.

    0

    das ist ein bisschen zu viel, das Sie lernen möchten. :)

    Ich würde vorschlagen, beginnend mit grundlegenden ARM v4 Kernarchitektur. ist es einfach genug zu verstehen. dann weiter zu 8086, dann zu späteren Versionen von ARM und x86 aufbauen. ARM ist vom RISC-Typ. und x86 des CISC-Typs. können Sie nie alle Prozessoren lernen. (wie Sie nicht jemals in der Lage sein werden, alle Programmiersprachen zu lernen) aber mit einer Kenntnis von 1 oder 2 kann ermöglichen, andere zu erfassen, die Sie stoßen würden. gibt es nicht viel Object orientiert über Low-Level-Programmierung. so ist es egal, wenn Sie C++ oder c verwenden. erhalten Sie einen vollständigen System-Simulator wie Gxemul oder Qemu. versuchen, eine Hallo Welt Montageprogramm auszuführen - (ohne die Prozessor-Laufzeitbibliotheken, - Sie können es hart wollen, nicht wahr?) andere könnten Sie in der Lage zu führen in Bezug auf SSE, MMX usw.

    Kasse Infocenter. arm.com für die ARM Assembly Sprache und Architektur Spezifikationen.

    1

    Einige Empfehlungen aus meinen persönlichen Favoriten zum Einstieg:

    • „Effective C++: 55 Spezielle Möglichkeiten, um Ihre Programme zu verbessern und Designs (3rd Edition)“ - Scott Meyers

    • "In der Maschine" - John Stokes

    • "Hacker Freude" - Henry S.Warren

    • „Die Software Optimization-Kochbuch“ - Richard Gerber

    • „Intel® 64 und IA-32 Architektur-Handbuch Software-Entwickler, Band 2A: Instruction Set Reference, AM“ (253666-021)

    • „Intel® 64 und IA-32 Architektur-Handbuch Software-Entwickler, Band 2B: Instruction Set Reference, NZ“ (253667-021)

    0

    ich habe immer gefunden, Computer Systems: A pro Programmier spective (http://www.amazon.com/Computer-Systems-Programmers-Randal-Bryant/dp/013034074X) ein sehr gutes Buch zu sein. Es hat eine große Menge an Informationen über Computer-Architektur, und es lehrte mich über Speicher-Management, Kompilierung und Verknüpfung (sowie, wie Link Fehler zu debuggen), Optimierung, verschiebbare Objektcode und einige untergeordnete Architektur Elemente wie, wie zu gehen über das Studium der Informatik von einem niedrigen Niveau (zB wie die Interna des Prozessors sind). Es gibt viele gute Übungen, von Optimierungsbeispielen bis zur Implementierung von Pufferüberläufen. Es beschreibt, wie Inline-Assembler-Code geschrieben wird (und es funktioniert). Es gibt sogar einen Abschnitt zum Schreiben von Code für einen fiktiven (Y86) Prozessor.

    Eine Einschränkung ist jedoch, dass es sich (meiner Meinung nach) stark auf die Intel Prozessorlinie konzentriert. Wenn Sie etwas möchten, das ein bisschen mehr in Richtung der Arbeit mit sagen der ARM-Linie ist, dann werden Sie wahrscheinlich die Empfehlungen von anderen oben nehmen wollen.

    1

    Vielleicht ist es Zeit für einen Account auf http://my.safaribooksonline.com/, trennen Sie das Telefon für ein paar Wochen, laden Sie den Kühlschrank mit Jolt und Funyuns, verabschieden sich von Ihrer Familie und Freunden, und lesen Sie so viele Bücher wie Sie kann. Sie haben dort eine ziemlich umfangreiche Bibliothek, die die meisten gesuchten Themen abdeckt.

    Verwandte Themen