C/C++语言跟汇编语言有什么关系

时间:2021-06-03 01:09:06
Hi, My Friends,
我是半路出家学编程的,用的是VB6.0写电话机的自动测试软件.我的同事建议我学学C/C++,但他强调说学C/C++一定要学习汇编,不然没有什么用,请问:C/C++语言跟汇编语言有什么关系?你认为我的朋友说的对吗?
Thank you.

Best regards,
Jerry Wan
Dec.8,2007

73 个解决方案

#1


c + 汇编 搞嵌入式8错

#2


可以很负责任的告诉你,你朋友要么是个迂腐的但是技术很牛的人;要么就是一个外行...

C/C++和汇编没有什么关系,没有所谓“学C/C++一定要学习汇编”的说法,虽然学C/C++的人很多都对汇编熟悉,但这不是

必要条件。如果照他的思想,最有用的应该是系统设计和机器语言...

看你的工作性质,确实C/C++更适合你。

#3


关键看你干什么了,呵呵

#4


过儿和小龙女说的不错!

如果让我说,你被你朋友忽悠了。

#5


也可以考虑JAVA
汇编学来有些痛苦,而且对你来说,并非必需!
:)
过儿牛叉之!!

#6


有超越友谊的不正当关系...........

C/C++可以内嵌汇编代码,C/C++里非常常用的“指针”就是汇编语言里的“内存地址”

#7


嵌入式,尤其是驱动,会点汇编还是很有好处的;应用上,我觉得更应该专注于设计,用什么语言体现设计也许并不是最重要的

#8


术业有专攻!

学自己需要的,不要盲目!

#9


你的朋友太厉害了,竟然可以将汇编和C/C++同级别的对待。
对于我们这些轻量级的只是混混而已,那些二进制1010101除非没有十几年的功力是看不懂的。
既然在用VB编写就用它来编,也可以学JAVA啊!!

#10


我觉得还是专攻一种语言比较好,如果是工作需要的话,可以考虑向汇编语言发展,但是要保证VB学得很好了,否则只会顾此失彼。至于VB和C++,从工作和应用来说,无所谓哪个语言更好,关键还是能否精通,不过如果想成为黑客或者系统分析师那样的高手,感觉还是要学C,而且汇编也要学,总之还是要看你自己的实际情况,或者纯粹为了技术和兴趣而学

#11


各位:

其实,上CSDN也是我说的这位朋友介绍的,他说这是个学习和交朋友的绝好地方.果然如此,我第一次发表如此幼稚的问题,就有这么多热心且诚心的朋友帮我解决,而且我仔细看了一下,还有好几位"四星级/五星级"的人物,例如:"过儿思念小龙女","gernal_dn","Treazy",让我学习任何东西又多了一分自信,这比上QQ有意义多了.

Thanks and best regards,
Jerry Wan
Dec.8 2007

#12


楼主要学c++就看看汇编,我觉得帮助还是不小的

我也是4个小三角了,可都是乞讨来的,呵呵,脸红了

#13


...到底是C还是C++ 应该有区别的吧

#14


我就觉得c/C++学到最后不一定学汇编,但是会汇编是最好的了
不同的语言有不同的适用范围

#15


4星5星的没那么多吧.5星的C\C++应该就一个 "瞌睡虫"
4星估计是在这版块灭绝的
学C\C++只要感兴趣,真的能学的很有劲
至于汇编..呵呵,有精力再说了吧.
要有侧重点.不然,啥都白忙活.

#16


个人觉得要看在什么领域,例如ARM中就必须学习汇编,因为启动代码是必须要汇编来写的,但纯PC机的软件学不学关系不大,不过据说在设计大型游戏的时候,很多人会选择在程序中内嵌汇编以提高速度。
另外,汇编语言是根据CPU变化的,不同的内核就有不同的汇编指令集,C语言之所以通用,是因为编译器的作用而已。

#17


偶最近也在困惑要不要学习汇编。。。

#18


  我个人觉得 c/c++ 要接触汇编,学到一定时候就想了解了解编译 想了解可执行里的二进制吧 大家也都经历过这个阶段吧?

#19


学C/C++不一定要用汇编啊。我想了那久都没用过,只是近来学校的课程里学了。不过学了真的有很多东西想得更明白了,不只是C/C++方面的。

#20


C和汇编没有任何关系!
汇编是一种面向机器的,不利于人类表达其设计思路。
而c是一种既适合机器,又适合人类描述思路的语言,其历史地位无与伦比!
计算机发展的几十年来,c语言实现了软件领域的几乎所有成就,其地位不可替代!
C++语言,根本没有办法和c相比,面向对象没有那么好,面向过程一直就很好。

#21


随便看看就行了,就好象去朋友家做客,见了他的邻居打个招呼就行了,不必太客套

#22


C/C++是比汇编语言更高级的语言,它的编译系统自动完成汇编过程

#23


术业有专攻! 

学自己需要的,不要盲目相信别人说的,每种语言都有其特色。

#24


许多技术等到用时 才知道没有学
还是早学的好

#25


术业有专攻!   

#26


JF

#27


c在编译的时候  会生成汇编 
但学c语言  不一定要学汇编

#28


为了加深理解 ,很有必要学习一下汇编

#29


汇编语言和c\c++没有必然的联系吧
不过你会汇编语言 对学习c\c++是大有帮助的

c\c++经过编译之后生成的目标代码就是汇编语言程序
会汇编语言有利于debug程序
目标代码再经过链接之后就可以编程exe可执行文件了(二进制代码)

#30


我也想学C++ .

#31


亲爱的朋友们:
非常感谢大家的热心帮助和讨论.我昨天晚上才提出我的问题和疑惑,今天就豁然开朗了.听取了各位热心朋友的不同意见后,让我对"C/C++语言跟汇编语言有什么关系"做一个小小的总结:
1.对于C/C++编程者,学习和了解汇编语言是有必要的,不一定要用汇编去写代码,但对于C/C++代码编译后的汇编要基本看得懂,这就有助于C/C++水平的提高.
2.如果编程方向是往嵌入式,单片机开发发展,则认真进一步学习汇编语言是有必要的,必须的.
3.如果编程方向是往Windows应用程序发展,则对于汇编语言加以了解就行了,当然,知识是越多越好,但各位也许我们都一样,过这"白天求生存,晚上图发展"的生活,学习的时间和精力毕竟是非常有限的.
4.多说一点,我在认真看了<<The C Programming Language>>,<<The C++ Programming Language>>后发现,其实C和C++是两种完全不同的计算机语言,最主要的是用C/C++来编程的方向(或者说要解决的问题)是不同的.
上述总结,说是对各位热心朋友意见的总结,但还是保留了本人很多不成熟的看法.
BR,
Jerry Wan
Dec,9 2007

#32


I think your English is very good and you are certainly a deligent peaple. Good luck to you!

#33


>>可以很负责任的告诉你,你朋友要么是个迂腐的但是技术很牛的人;要么就是一个外行...

过儿说的不错!

#34


>>可以很负责任的告诉你,你朋友要么是个迂腐的但是技术很牛的人;要么就是一个外行...

过儿说的不错!

#35


关系不是没有,但很特别的关系也谈不上。
C最接近汇编,个人愚见。

#36


学c/c++不是必须要学汇编,但是学了也没害处,学了之后对理解有好处,认识问题的时候也会更深一点。汇编跟硬件关系挺大。

#37


 学汇编有助于c语言编译执行的理解。而且汇编主要语法和c很相似,只是和底层硬件联系比较近,需要记忆的比较多。如果从事单片机,硬件驱动等和硬件密切以及需要执行效率高的场合学学是必须的。

#38


汇编和C/C++还是挺关联的,如果你看得懂汇编的话学C++的时候你看下反编译后的汇编代码会对C++理解的很透彻,知道C++的一些本质了,知道编译器为你做了什么了!


那个过二的网友说的很傻,其实汇编就是机器代码,只不过用比较好理解的字母代替了01而已!

#39


应该是有联系的

#40


引用 39 楼 star13579 的回复:
应该是有联系的

这么古老的帖子,都被翻出来了。

#41


同翻

计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……

VC调试时按Alt+8,TC或BC用TD调试,打开汇编窗口看每句C对应的汇编并单步执行一遍不就啥都明白了吗。
(Linux或Unix下应该也可以在用GDB调试时,看每句C对应的汇编。)
想要从本质上理解C指针,必须学习汇编以及C和汇编的对应关系。
从汇编的角度理解和学习C语言的指针,原本看似复杂的东西就会变得非常简单!
指针即地址。“地址又是啥?”“只能从汇编语言和计算机组成原理的角度去解释了。”

#42


编译C的时候,是通过汇编,最终成为机器能读取的形式的

#43


看特色吧!!

#44


每天回帖即可获得10分可用分!

#45


汇编太烦了,等用的时候在看吧,先学c/c++吧

#46


学了汇编,对于学C是有帮助的,特别是C中指针那一块,学了WIN32汇编,对你在WINDOWS下编程也有帮助

#47


汇编都忘记光了

#48


这位兄弟说的不错,
引用 2 楼 fetag 的回复:
可以很负责任的告诉你,你朋友要么是个迂腐的但是技术很牛的人;要么就是一个外行...

C/C++和汇编没有什么关系,没有所谓“学C/C++一定要学习汇编”的说法,虽然学C/C++的人很多都对汇编熟悉,但这不是

必要条件。如果照他的思想,最有用的应该是系统设计和机器语言...

看你的工作性质,确实C/C++更适合你。

#49


顶一下

#50


不用学汇编,除非你搞的是非常底层的东西,比如驱动开发,你哪位同学瞎说,不过学一点儿汇编也有好处,可以帮你更好的理解程序

#1


c + 汇编 搞嵌入式8错

#2


可以很负责任的告诉你,你朋友要么是个迂腐的但是技术很牛的人;要么就是一个外行...

C/C++和汇编没有什么关系,没有所谓“学C/C++一定要学习汇编”的说法,虽然学C/C++的人很多都对汇编熟悉,但这不是

必要条件。如果照他的思想,最有用的应该是系统设计和机器语言...

看你的工作性质,确实C/C++更适合你。

#3


关键看你干什么了,呵呵

#4


过儿和小龙女说的不错!

如果让我说,你被你朋友忽悠了。

#5


也可以考虑JAVA
汇编学来有些痛苦,而且对你来说,并非必需!
:)
过儿牛叉之!!

#6


有超越友谊的不正当关系...........

C/C++可以内嵌汇编代码,C/C++里非常常用的“指针”就是汇编语言里的“内存地址”

#7


嵌入式,尤其是驱动,会点汇编还是很有好处的;应用上,我觉得更应该专注于设计,用什么语言体现设计也许并不是最重要的

#8


术业有专攻!

学自己需要的,不要盲目!

#9


你的朋友太厉害了,竟然可以将汇编和C/C++同级别的对待。
对于我们这些轻量级的只是混混而已,那些二进制1010101除非没有十几年的功力是看不懂的。
既然在用VB编写就用它来编,也可以学JAVA啊!!

#10


我觉得还是专攻一种语言比较好,如果是工作需要的话,可以考虑向汇编语言发展,但是要保证VB学得很好了,否则只会顾此失彼。至于VB和C++,从工作和应用来说,无所谓哪个语言更好,关键还是能否精通,不过如果想成为黑客或者系统分析师那样的高手,感觉还是要学C,而且汇编也要学,总之还是要看你自己的实际情况,或者纯粹为了技术和兴趣而学

#11


各位:

其实,上CSDN也是我说的这位朋友介绍的,他说这是个学习和交朋友的绝好地方.果然如此,我第一次发表如此幼稚的问题,就有这么多热心且诚心的朋友帮我解决,而且我仔细看了一下,还有好几位"四星级/五星级"的人物,例如:"过儿思念小龙女","gernal_dn","Treazy",让我学习任何东西又多了一分自信,这比上QQ有意义多了.

Thanks and best regards,
Jerry Wan
Dec.8 2007

#12


楼主要学c++就看看汇编,我觉得帮助还是不小的

我也是4个小三角了,可都是乞讨来的,呵呵,脸红了

#13


...到底是C还是C++ 应该有区别的吧

#14


我就觉得c/C++学到最后不一定学汇编,但是会汇编是最好的了
不同的语言有不同的适用范围

#15


4星5星的没那么多吧.5星的C\C++应该就一个 "瞌睡虫"
4星估计是在这版块灭绝的
学C\C++只要感兴趣,真的能学的很有劲
至于汇编..呵呵,有精力再说了吧.
要有侧重点.不然,啥都白忙活.

#16


个人觉得要看在什么领域,例如ARM中就必须学习汇编,因为启动代码是必须要汇编来写的,但纯PC机的软件学不学关系不大,不过据说在设计大型游戏的时候,很多人会选择在程序中内嵌汇编以提高速度。
另外,汇编语言是根据CPU变化的,不同的内核就有不同的汇编指令集,C语言之所以通用,是因为编译器的作用而已。

#17


偶最近也在困惑要不要学习汇编。。。

#18


  我个人觉得 c/c++ 要接触汇编,学到一定时候就想了解了解编译 想了解可执行里的二进制吧 大家也都经历过这个阶段吧?

#19


学C/C++不一定要用汇编啊。我想了那久都没用过,只是近来学校的课程里学了。不过学了真的有很多东西想得更明白了,不只是C/C++方面的。

#20


C和汇编没有任何关系!
汇编是一种面向机器的,不利于人类表达其设计思路。
而c是一种既适合机器,又适合人类描述思路的语言,其历史地位无与伦比!
计算机发展的几十年来,c语言实现了软件领域的几乎所有成就,其地位不可替代!
C++语言,根本没有办法和c相比,面向对象没有那么好,面向过程一直就很好。

#21


随便看看就行了,就好象去朋友家做客,见了他的邻居打个招呼就行了,不必太客套

#22


C/C++是比汇编语言更高级的语言,它的编译系统自动完成汇编过程

#23


术业有专攻! 

学自己需要的,不要盲目相信别人说的,每种语言都有其特色。

#24


许多技术等到用时 才知道没有学
还是早学的好

#25


术业有专攻!   

#26


JF

#27


c在编译的时候  会生成汇编 
但学c语言  不一定要学汇编

#28


为了加深理解 ,很有必要学习一下汇编

#29


汇编语言和c\c++没有必然的联系吧
不过你会汇编语言 对学习c\c++是大有帮助的

c\c++经过编译之后生成的目标代码就是汇编语言程序
会汇编语言有利于debug程序
目标代码再经过链接之后就可以编程exe可执行文件了(二进制代码)

#30


我也想学C++ .

#31


亲爱的朋友们:
非常感谢大家的热心帮助和讨论.我昨天晚上才提出我的问题和疑惑,今天就豁然开朗了.听取了各位热心朋友的不同意见后,让我对"C/C++语言跟汇编语言有什么关系"做一个小小的总结:
1.对于C/C++编程者,学习和了解汇编语言是有必要的,不一定要用汇编去写代码,但对于C/C++代码编译后的汇编要基本看得懂,这就有助于C/C++水平的提高.
2.如果编程方向是往嵌入式,单片机开发发展,则认真进一步学习汇编语言是有必要的,必须的.
3.如果编程方向是往Windows应用程序发展,则对于汇编语言加以了解就行了,当然,知识是越多越好,但各位也许我们都一样,过这"白天求生存,晚上图发展"的生活,学习的时间和精力毕竟是非常有限的.
4.多说一点,我在认真看了<<The C Programming Language>>,<<The C++ Programming Language>>后发现,其实C和C++是两种完全不同的计算机语言,最主要的是用C/C++来编程的方向(或者说要解决的问题)是不同的.
上述总结,说是对各位热心朋友意见的总结,但还是保留了本人很多不成熟的看法.
BR,
Jerry Wan
Dec,9 2007

#32


I think your English is very good and you are certainly a deligent peaple. Good luck to you!

#33


>>可以很负责任的告诉你,你朋友要么是个迂腐的但是技术很牛的人;要么就是一个外行...

过儿说的不错!

#34


>>可以很负责任的告诉你,你朋友要么是个迂腐的但是技术很牛的人;要么就是一个外行...

过儿说的不错!

#35


关系不是没有,但很特别的关系也谈不上。
C最接近汇编,个人愚见。

#36


学c/c++不是必须要学汇编,但是学了也没害处,学了之后对理解有好处,认识问题的时候也会更深一点。汇编跟硬件关系挺大。

#37


 学汇编有助于c语言编译执行的理解。而且汇编主要语法和c很相似,只是和底层硬件联系比较近,需要记忆的比较多。如果从事单片机,硬件驱动等和硬件密切以及需要执行效率高的场合学学是必须的。

#38


汇编和C/C++还是挺关联的,如果你看得懂汇编的话学C++的时候你看下反编译后的汇编代码会对C++理解的很透彻,知道C++的一些本质了,知道编译器为你做了什么了!


那个过二的网友说的很傻,其实汇编就是机器代码,只不过用比较好理解的字母代替了01而已!

#39


应该是有联系的

#40


引用 39 楼 star13579 的回复:
应该是有联系的

这么古老的帖子,都被翻出来了。

#41


同翻

计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……

VC调试时按Alt+8,TC或BC用TD调试,打开汇编窗口看每句C对应的汇编并单步执行一遍不就啥都明白了吗。
(Linux或Unix下应该也可以在用GDB调试时,看每句C对应的汇编。)
想要从本质上理解C指针,必须学习汇编以及C和汇编的对应关系。
从汇编的角度理解和学习C语言的指针,原本看似复杂的东西就会变得非常简单!
指针即地址。“地址又是啥?”“只能从汇编语言和计算机组成原理的角度去解释了。”

#42


编译C的时候,是通过汇编,最终成为机器能读取的形式的

#43


看特色吧!!

#44


每天回帖即可获得10分可用分!

#45


汇编太烦了,等用的时候在看吧,先学c/c++吧

#46


学了汇编,对于学C是有帮助的,特别是C中指针那一块,学了WIN32汇编,对你在WINDOWS下编程也有帮助

#47


汇编都忘记光了

#48


这位兄弟说的不错,
引用 2 楼 fetag 的回复:
可以很负责任的告诉你,你朋友要么是个迂腐的但是技术很牛的人;要么就是一个外行...

C/C++和汇编没有什么关系,没有所谓“学C/C++一定要学习汇编”的说法,虽然学C/C++的人很多都对汇编熟悉,但这不是

必要条件。如果照他的思想,最有用的应该是系统设计和机器语言...

看你的工作性质,确实C/C++更适合你。

#49


顶一下

#50


不用学汇编,除非你搞的是非常底层的东西,比如驱动开发,你哪位同学瞎说,不过学一点儿汇编也有好处,可以帮你更好的理解程序