需要书和高级低级编程的网站建议

发布于 2024-08-23 05:20:25 字数 460 浏览 1 评论 0原文

我想学习低级编程的所有高级细节,所以我希望能够

  • 学习高级 c/c++
  • 使用和不使用内联汇编优化我的代码
  • 了解 exe、dll、线程、进程的内部结构
  • 有效利用 SSE、3DNow、MMX
  • 等技术 调试和反汇编可执行文件/库并了解内部发生的情况
  • 差异/x86、MIPS、ARM、PowerPC 等不同 cpu/平台的功能
  • My first target is a x86 Windows based system. After that, comes linux based platforms. And embedded systems follow. Any books, web sites, tutorials, forums, comunities that give me what I'm looking for DIRECTLY is fine.
    Thanks..

    I want to learn all advanced details of low-level programming so i want to be able to

  • Learn advanced c/c++
  • Optimize my code with and without inline assembly
  • Understand the internals of an exe, dll, thread, process
  • Effeciently make use of technologies like SSE, 3DNow, MMX
  • Debug&disassemble executables/libraries and understand what's going on inside
  • The differences/features of different cpus/platforms like x86, MIPS, ARM, PowerPC
  • My first target is a x86 Windows based system. After that, comes linux based platforms. And embedded systems follow.
    Any books, web sites, tutorials, forums, comunities that give me what I'm looking for DIRECTLY is fine.
    Thanks..

    如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

    扫码二维码加入Web技术交流群

    发布评论

    需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

    评论(5

    左岸枫 2024-08-30 05:20:25

    你所要求的东西在一本书中找不到。您提到的大部分内容最好在各种处理器的用户手册或功能规范中找到。我建议从了解核心 x86 架构开始,然后从那里开始工作。一本旧的 Intel 386 或 486 手册可能是一个好的开始。

    据我所知,没有提供此类信息的网站。

    What you are asking for cannot be found in a single book. Much of what you have mentioned is best found in User Manuals or Functional Specifications for various processors. I recommend starting with an understanding of the core x86 arch and working up from there. One of the old Intel 386 or 486 manuals might be a good start.

    I know of no websites for this type of info.

    流殇 2024-08-30 05:20:25

    我个人最喜欢的一些建议可以帮助您入门:

    • “有效的 C++:改进程序和设计的 55 种具体方法(第 3 版)”
      -- Scott Meyers

    • “机器内部” -- 约翰·斯托克斯

    • “黑客的喜悦” -- 亨利·沃伦

    • “软件优化指南” -- Richard Gerber

    • “英特尔® 64 和 IA-32 架构软件开发人员手册,卷” 2A:指令集参考,AM”(253666-021)

    • “英特尔® 64 和 IA-32 架构软件开发人员手册,第 2B 卷:指令集参考,新西兰” (253667-021)

    A few recommendations from among my personal favourites to get you started:

    • “Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition)”
      -- Scott Meyers

    • “Inside the Machine” -- John Stokes

    • “Hacker’s Delight” -- Henry S. Warren

    • “The Software Optimization Cookbook” -- Richard Gerber

    • “Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 2A: Instruction Set Reference, A-M” (253666-021)

    • “Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 2B: Instruction Set Reference, N-Z” (253667-021)

    岁月静好 2024-08-30 05:20:25

    也许您是时候在 http://my.safaribooksonline.com/ 上注册一个帐户,拔掉电源打电话几周,在冰箱里装满 Jolt 和 Funyuns,告别家人和朋友,然后尽可能多地读书。他们有一个相当丰富的图书馆,涵盖了您正在寻找的大部分主题。

    Maybe it's time for you to get an account on http://my.safaribooksonline.com/, unplug the phone for a couple of weeks, load the refrigerator up with Jolt and Funyuns, say goodbye to your family and friends, and then read as many books as you can. They have a pretty substantial library on there that covers most of the topics that you're looking for.

    好菇凉咱不稀罕他 2024-08-30 05:20:25

    这有点太多了,你想学。 :)

    我建议从基本的 ARM v4 核心架构开始。
    它很简单易懂。
    然后转向 8086,然后构建到更高版本的 ARM 和 x86。
    ARM属于RISC类型。和CISC类型的x86。
    你永远不可能学会所有的处理器。 (就像你永远无法学习所有编程语言一样)
    但掌握 1 或 2 种知识就能够掌握您遇到的任何其他知识。
    低级编程没有太多面向对象的内容。
    所以你使用c++还是c并不重要。
    获取完整的系统模拟器,例如 gxemul 或 qemu。
    尝试执行一个 hello world 汇编程序 - (不使用处理器运行时库, - 你想要它很难,对吧?)
    其他人可能能够在 SSE、MMX 等方面为您提供指导。

    查看 infocenter.arm.com 了解 ARM 汇编语言和体系结构规范。

    that is a bit too much, that you want to learn. :)

    i would suggest starting with basic ARM v4 core architecture.
    it is simple enough to understand.
    then move on to 8086, then build up to later versions of ARM and x86.
    ARM is of the RISC type. and x86 of the CISC type.
    you can never learn all of the processors. (like you wont be ever able to learn all the programming languages)
    but having a knowledge of 1 or 2 can will enable to grasp any other you would come across.
    there is nothing much Object oriented about low level programming.
    so it doesnt matter if you use c++ or c.
    get a full system simulator like gxemul or qemu.
    try to execute a hello world assembly program - (without using the processor runtime libraries, - you want it hard, right?)
    others might be able to guide you with respect to SSE, MMX etc.

    checkout infocenter.arm.com for the ARM assembly language and architecture specifications.

    薔薇婲 2024-08-30 05:20:25

    我总是找到《计算机系统:程序员的视角》(http://www.amazon。 com/Computer-Systems-Programmers-Randal-Bryant/dp/013034074X)是一本非常好的书。它有大量关于计算机体系结构的信息,它教会了我有关内存管理、编译和链接(以及如何调试链接错误)、优化、可重定位目标代码以及一些较低级别的体系结构项目,例如如何去关于从低层次学习计算机科学(例如处理器的内部结构是什么样的)。有很多很好的练习,从优化示例到实现缓冲区溢出。它讨论了如何编写内联汇编代码(并使其工作)。甚至还有一个章节是关于为虚构的(Y86)处理器编写代码的。

    但需要注意的是,它往往主要关注英特尔处理器系​​列(在我看来)。如果您想要一些更类似于 ARM 系列的产品,那么您可能需要采纳上面其他人的建议。

    I've always found Computer Systems: A Programmer's Perspective (http://www.amazon.com/Computer-Systems-Programmers-Randal-Bryant/dp/013034074X) to be a very good book. It's got a large amount of information about Computer Architecture, and it taught me about memory management, compilation and linking (as well as how to debug linking errors), optimization, relocatable object code, and some lower-level architecture items like how to go about studying computer science from a low-level (e.g. what the internals of the processor are like). There are a lot of good exercises, ranging from optimization examples to implementing buffer overflows. It discusses how to write inline assembly code (and make it work). There's even a section on writing code for a fictional (Y86) processor.

    One caveat, though, is that it tends to focus to heavily on the Intel processor line (in my opinion). If you want something that's a bit more along the lines of working with say the ARM line, then you'll probably want to take the recommendations from others above.

    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文