深入理解程序设计

[美] Jonathan Bartlett

出版时间

2013-12-31

ISBN

9787115337887

评分

★★★★★
书籍介绍

是否真正理解汇编语言,常常是普通程序员和优秀程序员的分水岭。《深入理解程序设计:使用Linux汇编语言》介绍了Linux平台下的汇编语言编程,教你从计算机的角度看问题,从而了解汇编语言及计算机的工作方式,为成就自己的优秀程序员之梦夯实基础。

很多人都认为汇编语言晦涩难懂,但New Medio技术总监Jonathan Bartlett的这本书将改变人们的看法。本书首先介绍计算机的体系结构,然后从编写简单程序开始,一步一步扩充函数、文件、读写处理等知识,并平滑过渡到程序共享、存储与优化,由浅入深地介绍了Linux汇编语言编程。作者不仅会带你了解向计算机传递信息的方式方法,还让你学会向修改和使用程序的人传递信息,并最终用自己的规则构建“世界”,按自己对问题的理解和解决方案创造“世界”。

主要内容:

计算机体系结构(详解内存及寻址方式);

编程初体验;

函数使用及复杂度处理;

文件处理及缓冲区分析;

记录读写及修改;

通过测试及错误处理打造健壮程序;

程序共享;

内存布局及处理;

计算机的计数原理;

程序优化(时机、位置及方式)。

Jonathan Bartlett

New Medio技术总监,负责为各公司定制Web应用、移动应用或企业软件解决方案。在此之前,他曾在EDS担任因特网开发经理一职,为Web团队和Wolfram Research提供技术支持。另外,他常在IBM DeveloperWorks社区撰文,介绍从高性能Playstation 3编程到高级元编程技巧等主题。

AI导读
核心看点
  • 本书以Linux平台为背景,采用AT&T语法深入讲解汇编语言编程,从计算机体系结构、内存管理及CPU构造等底层原理讲起,帮助读者建立从硬件视角理解程序运行的思维模式,彻底打破汇编语言晦涩难懂的刻板印象,为成为优秀程序员夯实基础。
  • 内容涵盖函数调用约定、递归实现、文件处理、缓冲区分析及记录读写等核心编程技能,并特别强调如何开发健壮的程序,包括错误处理、测试策略及文档规范。作者主张编程不仅是让计算机执行指令,更是向其他开发者传递清晰意图的艺术,倡导编写风格良好、易于维护的代码。
  • 书中详细探讨了程序优化原则,明确指出除非极端情况,否则代码的可维护性和可读性远高于优化,反对过早优化。同时提供二进制运算加速技巧及内存布局知识,引导读者理解计算机计数原理,并通过实际案例演示如何构建模块化、安全的程序,最后推荐了经典的计算机学习书目。
适合谁读
  • 适合完全没有编程基础或汇编基础,但希望深入理解计算机底层工作原理、内存管理及程序执行机制的初学者。本书假定读者无需具备任何高级语言基础,从零开始引导,帮助新手建立正确的编程思维,避免陷入黑盒编程的误区,适合立志成为底层开发者的学生。
  • 适合熟悉高级语言但想突破技术瓶颈,深入理解函数调用、系统调用、内存分配及共享库机制的程序员。通过汇编视角,读者能更清晰地理解高级语言背后的实现细节,提升调试能力、安全意识及性能优化水平,适合希望从普通程序员进阶为优秀程序员的开发者。
  • 适合对Linux系统编程、AT&T汇编语法感兴趣,或需要学习如何编写安全、健壮、符合规范代码的开发者。书中关于错误处理、测试策略及代码文档化的内容,对从事系统级开发、逆向工程或需要深入理解操作系统交互机制的专业人士具有参考价值。
读前提醒
  • 本书中文版存在翻译错误及代码错误,部分示例代码无法直接运行,且内容较为陈旧。建议读者优先获取官方提供的免费英文原版PDF及源码,或参考图灵社区的勘误表进行对照阅读。切勿盲目照抄代码,应注重理解其背后的逻辑与原理,遇到错误时尝试自行修正以加深理解。
  • 书中涉及大量底层概念如寄存器操作、内存地址、二进制运算等,学习曲线较陡峭,需耐心跟随作者步骤逐步实践。建议配合Linux环境进行实际操作,严禁跳过动手环节。若对AT&T语法不熟悉,需额外查阅相关资料辅助理解,切勿因语法差异而放弃,应专注于理解程序结构与硬件交互逻辑。
  • 本书篇幅较薄,内容不够系统全面,不适合作为汇编语言的唯一参考书。读者应将其视为入门引导,重点吸收其编程哲学、安全规范及学习路径建议。书中推荐的后续学习书目极具价值,建议在读完后立即按照推荐书单进行深入学习,以构建完整的计算机科学知识体系。
读者共识
  • 读者普遍认为本书是极佳的汇编入门读物,尤其适合零基础用户,其通俗易懂的讲解方式降低了学习门槛。书中强调的编程伦理、代码规范及安全意识受到高度评价,认为其有助于培养良好的编程习惯。尽管存在翻译瑕疵,但其传达的从底层理解程序的思想被广泛认可,被视为提升编程素养的重要读物。
  • 多数读者指出书中代码存在错误且部分示例无法运行,翻译质量参差不齐,甚至出现方向性错误。然而,读者仍肯定其教学价值,认为通过修正错误能更好地掌握知识。同时,读者强烈建议直接阅读英文原版或参考官方勘误,以避免被错误代码误导。对于已有汇编基础者,本书内容过于浅显,不建议购买。
  • 读者高度赞赏书中关于‘编程如诗’的理念及最后章节推荐的书单,认为其提供了正确的学习方向。尽管内容老旧且薄,但其对Linux汇编、系统调用及内存管理的讲解仍具启发性。读者共识是:此书适合初学者建立底层思维,但不适合深入钻研,应作为跳板,结合其他权威教材共同学习,切勿仅依赖此书。

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "One of the greatest programmers, Donald Knuth, describes programming not as telling a computer how to do something, but telling a person how they would instruct a computer to do something. In our case, the kernel is Linux. Now, the kernel all by itself won't do anything. You can't even boot up a com"
  • "Source code is the human-readable form of a program. In order to transform it into a program that a computer can run, we need to assemble and link it. The first step is to assemble it. Assembling is the process that transforms what you typed into instructions for the machine. The machine itself only"
  • "存储在内存中的地址也成为指针"
  • "与修复相比,试图诊断出了什么问题导致更多的问题。因此仅通过报告错误代码和消息,让用户通过不同的资源进行故障排除是更好的做法。"
  • "计算机将一切都作为1和0的序列来存储。计算机内存只看到数字,具体表达方式和意义需要程序员去解释。 不同指令执行速度不同,可以通过二进制运算符(布尔运算符:AND, OR, NOT, XOR, 移位与循环移位)来加速。"
  • "语言只是工具,程序员不应该惧怕使用学习和使用新的工具。 每个语言都各有千秋,懂得的语言越多,就越能胜任程序员的工作。"
  • "我热爱编程,编写不但能运行而且风格良好的程序是我最喜欢的挑战。变成如同写诗。它不仅是在向计算机传递信息,也是向修改和使用程序的人传递信息。有了程序,你就能用一套规则构建自己的世界,按自己对问题的理解和自己构思的解决方案来创造自己的世界。高明的程序员可以用诗歌或散文般简明的程序来构建世界。 作为最伟大的程序员之一,Donald Knuth这样向我们描述编程:编程并非告诉计算机如何做某件事,而是告诉人们程序员如何指示计算机做某件事。这里的关键在于:程序不仅仅是给计算机看的,更是给人看的。当你转向其他项目后,你的程序将由其他人修改和更新。因此,编程并非只需要和计算机交流,更意味着要和接替你的程序员沟"
  • "I love programming. I enjoy the challenge to not only make a working program, but to do so with style. Programming is like poetry. It conveys a message, not only to the computer, but to those who modify and use your program. With a program, you build your own world with your own rules. You create yo"
作者简介
Jonathan Bartlett New Medio技术总监,负责为各公司定制Web应用、移动应用或企业软件解决方案。在此之前,他曾在EDS担任因特网开发经理一职,为Web团队和Wolfram Research提供技术支持。另外,他常在IBM DeveloperWorks社区撰文,介绍从高性能Playstation 3编程到高级元编程技巧等主题。
目录
第1章 引言  1
1.1  欢迎加入编程大军  1
1.2  工具  2
第2章 计算机体系结构  5
2.1  内存结构  5

显示全部
用户评论
直接上手,用实例的方式教你学汇编,对初学者友好。美中不足的是有点薄,讲的东西不可能系统。而且内容也有点老了。
以优雅的方式展现了汇编语言思维,原来读汇编程序也可以赏心悦目,最后一章《学无止境》推荐的书目值得关注。
讲得不错的,大一的时候元旦假期从学校图书馆借来读,结果去超市买食品的时候脑子里都全都是MOV, PUSH, POP这些东西
入门书, 适合没有基础的读
汇编代码手把手教学,照着码就是了。算是基础入门吧,就是Linux的汇编代码照抄编译。
终于理解了函数调用
精髓在参考文献
下载
收藏