求一本从汇编角度讲解C语言的书

BadBlood1984
  • 102

希望有一本可以讲解 C 的各个方面 从内存和寄存器 角度是如何处理的书。

回复
阅读 5.9k
9 个回答
✓ 已被采纳

从内存到寄存器,那么其实你要知道的不仅仅是汇编。还有计算机系统结构,操作系统的基本知识。
有本书叫《深入理解计算机系统》(我觉得这个翻译很土鳖),英文名是Computer System, A Programmer's Perspective.

就像它的英文名所说的那样,从一个程序员的角度解释计算机系统。这本书从底层的硬件,CPU架构,硬件缓存,指令编码,到汇编语言,操作系统,性能优化以及上层应用。覆盖范围很广,而且每个层次的知识点都讲得很细致,配合一些课后练习(我当时看时就做了不少),对于你理解计算机系统的原理非常有帮助。

各个部分内容相对独立,对于不感兴趣的可以跳过,我当时就直接跳过了第四章(我没记错的话)讲CPU的。

这本书毕竟不是编程书,没法提高你的C编程能力,但对你理解C语言本身,C语言与操作系统,汇编语言的关系非常有帮助。

这种书到目前为止,还没有见过。不过你可以换个角度:

  1. C语言中是如何嵌入汇编语言的,以及他们是如何交互的
  2. 找本汇编语言的书看,学习汇编语言,从中体会C语言,可以学习MASM
  3. 自己探索,写成博客,比如,你可以把你感兴趣的C语言代码片段反编译成汇编代码,从中找到你想要的答案

最后,希望你不要寄希望于一本书就把你所有的疑惑都解释清楚,不如一点点来,掌握住探索问题的方法。如果没有此类书,你就停止不前了吗?

那你找的书其实是C语言加上编译原理
不过专门讲C编译器是如何实现编译原理的书应该很少
你可以参考类似于《编译原理》及"自己写一个编译器"(大致名字是这样)这种书

根据你的描述,估计只有一本书:《编译原理——C语言实现》

自己找到一本书《征服C指针》还不错,而且由于是日本人写的,所以翻译的比较通顺。

《编译原理》

我只见过讲解汇编的书,学玩汇编就好了,可以看下c语言编译的汇编代码

big_CIA
  • 131

希望可以帮到你
《深入理解程序设计 使用Linux汇编语言》
这里面讲了些和C语言有关的东西,貌似有些章节告诉了和C语言的联系,比如for循环在汇编下面是什么样子的之类的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏