需要书籍和网站建议进行高级低级编程

时间:2010-02-24 21:16:11

标签: c++ optimization low-level internals

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

  • 学习高级c / c ++
  • 使用和不使用内联汇编优化我的代码
  • 了解exe,dll,线程,进程的内部结构
  • 有效利用SSE,3DNow,MMX等技术
  • 调试和反汇编可执行文件/库并了解内部发生的事情
  • 不同cpus /平台的差异/功能,如x86,MIPS,ARM,PowerPC
  • 我的第一个目标是基于x86 Windows的系统。之后,基于Linux的平台。嵌入式系统如下。 任何书籍,网站,教程,论坛,社区,直接给我我正在寻找的东西都很好。
    感谢..

    5 个答案:

    答案 0 :(得分:1)

    您要求的内容无法在一本书中找到。您提到的大部分内容最好在各种处理器的用户手册或功能规格中找到。我建议首先了解核心x86 arch并从那里开始工作。其中一个旧的英特尔386或486手册可能是一个良好的开端。

    我知道没有此类信息的网站。

    答案 1 :(得分:1)

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

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

    • “机器内部” - John Stokes

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

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

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

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

    答案 2 :(得分:1)

    也许是时候让你在http://my.safaribooksonline.com/找到一个帐户,拔掉电话几周,用Jolt和Funyuns装上冰箱,跟你的家人和朋友道别,然后读多少你可以预订书籍。他们有一个非常丰富的图书馆,涵盖了您正在寻找的大部分主题。

    答案 3 :(得分:0)

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

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

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

    答案 4 :(得分:0)

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

    但是,有一点需要注意的是,它倾向于将重点放在英特尔处理器产品线上(在我看来)。如果你想要一些与ARM系列相似的东西,那么你可能想要接受上面其他人的推荐。