我想学习低级编程的所有高级细节,所以我希望能够
谢谢..
我想学习低级编程的所有高级细节,所以我希望能够
您所要求的内容无法在一本书中找到。您提到的大部分内容最好在用户手册或各种处理器的功能规范中找到。我建议从了解核心 x86 架构开始,然后从那里开始。旧的 Intel 386 或 486 手册之一可能是一个好的开始。
我知道没有此类信息的网站。
我个人最喜欢的一些建议可以帮助您入门:
“有效的 C++:改进程序和设计的 55 种特定方法(第 3 版)”——Scott Meyers
“机器内部”——约翰·斯托克斯
“黑客的喜悦”——亨利·S·沃伦
“软件优化手册”——理查德·格伯
“英特尔® 64 和 IA-32 架构软件开发人员手册,第 2A 卷:指令集参考,AM” (253666-021)
“英特尔® 64 和 IA-32 架构软件开发人员手册,第 2B 卷:指令集参考,新西兰”(253667-021)
也许是时候让你在http://my.safaribooksonline.com/上注册一个帐户,拔掉手机几周,在冰箱里装上 Jolt 和 Funyuns,告别你的家人和朋友,然后阅读尽可能多的书。他们在那里有一个相当丰富的图书馆,涵盖了您正在寻找的大部分主题。
这有点太多了,你想学习。:)
我建议从基本的 ARM v4 核心架构开始。这很容易理解。然后继续使用 8086,然后构建到更高版本的 ARM 和 x86。ARM 属于 RISC 类型。和 CISC 类型的 x86。您永远无法学习所有处理器。(就像您永远无法学习所有编程语言一样)但是拥有 1 或 2 种知识可以掌握您遇到的任何其他语言。低级编程没有太多面向对象。所以无论你使用c++还是c都没有关系。获得一个完整的系统模拟器,如 gxemul 或 qemu。尝试执行一个 hello world 汇编程序 - (不使用处理器运行时库, - 你想要它很难,对吧?)其他人可能能够在 SSE、MMX 等方面指导你。
查看 infocenter.arm.com 以了解 ARM 汇编语言和架构规范。
我一直认为 Computer Systems: A Programmer's Perspective ( http://www.amazon.com/Computer-Systems-Programmers-Randal-Bryant/dp/013034074X ) 是一本非常好的书。它有大量关于计算机体系结构的信息,它教会了我关于内存管理、编译和链接(以及如何调试链接错误)、优化、可重定位目标代码以及一些较低级别的体系结构项目,如如何去关于从低层次学习计算机科学(例如处理器的内部结构是什么样的)。有很多很好的练习,从优化示例到实现缓冲区溢出。它讨论了如何编写内联汇编代码(并使其工作)。甚至还有一个关于为虚构的 (Y86) 处理器编写代码的部分。
不过需要注意的是,它往往会重点关注英特尔处理器产品线(在我看来)。如果您想要一些更接近于使用 ARM 线的东西,那么您可能需要接受上述其他人的建议。