要把C/C++学懂,真的还是要看的懂汇编.你觉得呢?

nickowen 2011-05-25 04:05:31
这就向一个可以辅助你学习的方法.
让你知其然且知所以然.

STL那些固然有很多值得学习的地方.但有些脱离了他的东东.还是要看汇编来学习理解.
以上只是个人意见,你觉得呢?
...全文
155 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
半夜3 4点调试到无奈的按了个汇编,这个时候就知道汇编的作用
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 downmooner 的回复:]

=。= 我一次面试腾讯测试,被个主管问起寄存器有哪6种。
[/Quote]
通用寄存器 索引寄存器 栈寄存器 标志位寄存器 特殊目的寄存器 额外的寄存器
stackoverlow 2011-05-25
  • 打赏
  • 举报
回复
不会汇编,不过我觉得是
C的有些经典书还会配套汇编讲解过程,应该要懂下好
而且我自己也想学汇编嘿嘿
爱在深秋 2011-05-25
  • 打赏
  • 举报
回复
会的多总是一种好的选择
downmooner 2011-05-25
  • 打赏
  • 举报
回复
=。= 我一次面试腾讯测试,被个主管问起寄存器有哪6种。
大熊猫侯佩 2011-05-25
  • 打赏
  • 举报
回复
虽然我常飘汇编区,但我负责任的说:不用懂汇编。

(这样没人和我抢分了,呵呵)
nickowen 2011-05-25
  • 打赏
  • 举报
回复
恩,看来很多人都这样觉得.
做应用开发的汇编不一定要精通,能看懂个大概,帮助自己理解代码就好.
要不很多东西都要去看书,细节那么多,不经常用,忘记是正常的.
C++语法是有点恶心的.陷阱多,也不能保证每个知识点都看到.所以有了汇编的帮助才能不变应万遍
QQIANQQ 2011-05-25
  • 打赏
  • 举报
回复
对的,有时候C++语法层面的东西你是在想不明白是怎么回事,结果怎么就不对。
看一下反汇编代码。其实就会发现很简单。
Nakumi2012 2011-05-25
  • 打赏
  • 举报
回复
这也不能这样看吧.如果光是开发的话或许不用汇编,因为我们就直接学的是C++连C都没学,但是如果要往底层看的话,汇编也是应该看一下,尤其是做调试的时候
  • 打赏
  • 举报
回复
牛人都懂汇编
不过汇编也不是那么好学的
我一般万不得已,是不看汇编代码的

当然只限于简单的
serven_zhang 2011-05-25
  • 打赏
  • 举报
回复
是的,神马语言归根到底还是源代码在那里“作祟”,你说你看不懂源代码当然但也不是绝对,能看懂,对我们其他语言的学习只会有利无弊!!!
ryfdizuo 2011-05-25
  • 打赏
  • 举报
回复
坦白说,我不懂汇编~
luciferisnotsatan 2011-05-25
  • 打赏
  • 举报
回复
这个是肯定的。尤其是当出光看源代码,看不出问题的时候。
我遇到过很多程序员和计算机系毕业的学生,也给很多程序员和计算机系毕业的学生讲 解过《高级C 语言程序设计》。每期班开课前,我总会问学生:你感觉C 语言学得怎么样? 难吗?指针明白吗?数组呢?内存管理呢?往往学生回答说:感觉还可以,C 语言不难,指 针很明白,数组很简单,内存管理也不难。一般我会再问一个问题:通过这个班的学习, 你想达到什么程度?很多学生回答:精通C 语言。我告诉他们:我很无奈,也很无语。因 为我完全在和一群业余者或者是C 语言爱好者在对话。你们大学的计算机教育根本就是在 浪费你们的时间,念了几年大学,连C 语言的门都没摸着。现在大多数学校计算机系都开 了C、C++、Java、C#等等语言,好像什么都学了,但是什么都不会,更可悲的是有些大学 居然取消了C 语言课程,认为其过时了。我个人的观点是“十鸟在林,不如一鸟在手”,真 正把C 语言整明白了再学别的语言也很简单,如果C 语言都没整明白,别的语言学得再好 也是花架子,因为你并不了解底层是怎么回事。当然我也从来不认为一个没学过汇编的人 能真正掌握C 语言的真谛。我个人一直认为,普通人用C 语言在3 年之下,一般来说,还 没掌握C 语言;5 年之下,一般来说还没熟悉C 语言;10 年之下,谈不上精通。所以,我 告诉我的学生:听完我的课,远达不到精通的目标,熟悉也达不到,掌握也达不到。那能 达到什么目标?-----领你们进入C 语言的大门。入门之后的造化如何在于你们自己。不过我 可以告诉你们一条不是捷径的捷径:把一个键盘的F10 或F11 按坏,当然不能是垃圾键盘。 往往讲到这里,学生眼里总是透露着疑虑。C 语言有这么难吗?我的回答是:不难。但 你就是用不明白。学生说:以前大学老师讲C 语言,我学得很好。老师讲的都能听,考 试也很好。平时练习感觉自己还不错,工作也很轻松找到了。我告诉学生:听明白,看明 白不代表你了,你了不代表你会用了,你会用了不代表你能用明白,你能用明白不代 表你真正了!什么时候表明你真正了呢?你站在我这来,把问题给下面的同学讲明白, 学生都听明白了,说明你真正了。否则,你就没真正,这是检验的唯一标准。 冰山大家都没见过,但总听过或是电影里看过吧?如果你连《泰坦尼克》都没看过,那你 也算个人物(开个玩笑)。《泰坦尼克》里的冰山给泰坦尼克造成了巨大的损失。你们都是 理工科的,应该明白冰山在水面上的部分只是总个冰山的1/8。我现在就告诉你们,C 语言 就是这座冰山。你们现在仅仅是摸到了水面上的部分,甚至根本不知道水面下的部分。我 希望通过我的讲解,让你们摸到水面下的部分,让你们知道C 语言到底是什么样子。
1.汇编语言   汇编语言是最接近于机器语言的编程语言。如果说机器语言是计算机操作的本质,那么汇编语言就是最最接近本质的语言。汇编语言操作直接面向硬件,所以,我们在使用汇编语言的时候,我们能够感知计算机的运行过程和原理,从而能够对计算机硬件和应用程序之间的联系和交互形成一个清晰的认识。这也是最能够锻炼编程者编程思维逻辑的,只有这样,学习者才能形成一个软、硬兼备的编程知识体系,这是任何高级语言都无法给予的!相对于繁复的高级语言,汇编语言指令集合更简约,指令操作更直接,从汇编开始学习更符合循序渐进的学习原理!所以,对于计算机技术初学者或者自学者,汇编语言重要性无可替代! 2.汇编语言之于高级语言   不否认,在应用层面,高级语言占据了软件开发市场的绝大部分。也正是这种现象,误导了学习者,甚者是教育者!所以目前高校计算机专业的现状是:专业课程中C语言,C++,java等高级语言一应俱全,而毕业的学生却连简单的程序都不能编写。为什么?听不,学不会!这就是缺乏基础造成的! 汇编语言才是计算机技术的基础,而不是常说的C语言。之所以说汇编重要,其一个重要的原因就是,汇编语言能够让你更好的理解高级语言,尤其是高级语言中的C语言。汇编语言对于内存的操作都是基于内存地址的,而C语言中最令人头疼的指针概念,说白了就是内存的地址。指针的学习和应用中最头疼的就是在指针这个抽象的概念和实际的内存单元之间建立思维映射,而这些恰恰是我们在汇编语言学习中频繁做的一件平常事。另外,对于C语言中的数据类型、形参实参、函数调用、全局变量、局部变量等概念及操作,我们都可以用汇编语言中的一些操作相关联,把这些抽象的概念和过程,通过汇编语言形成一个具体的映像,深度剖析,这样我们才能真正的学会、学好C语言。   有了汇编和C的基础,那些所谓的面向对象的语言学习起来就更为顺畅了!奉劝那些好高骛远的学习者,踏踏实实的从汇编开始吧,古云:磨刀不误砍柴工啊! 3.汇编语言之于应用   很多学习者放弃对于汇编语言的学习,是因为高级语言的开发更容易找到工作。这个理由也是我见到过的最现实的。但是,这里面明显存在着认识误区!   首先,我们的学习是一个系统过程,我们的知识结构不是一个单一课程所能够建立的。所以,学习汇编的目的并不是非要用汇编去挣饭钱。因为汇编语言对于一个编程人员所应该具备的基本素质的培养和形成得意义是非常重大的!这在前文中已经分析了,不再赘述!   其次,汇编本身也是很重要的应用技术。由于学习者,尤其是在校的学生,平时接触的最多的是纯软件的东西,所以,觉得五花八门的软件才是计算机技术应用的舞台。那么这些人最终会成为那位博主提到的那些工作后才意识到汇编的作用的“师兄”!汇编的操作由于跟硬件紧密相关,所以,很多硬件设施的嵌入式编程使用的都是使用的汇编语言,因为汇编语言更直接,更有效率!我们现在的数码产品很多,而这些数码产品赖以生存的芯片,主板等,都包含了嵌入式程序,而这些程序中,汇编语言的使用是相当重要的!   为了工作放弃汇编,得失自明啊!

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧