打印

汇编语言 - C语言的区别!!!

[复制链接]
4415|17
手机看帖
扫描二维码
随时随地手机跟帖
沙发
conwh| | 2007-6-26 19:21 | 只看该作者

又要发起战役?

使用特权

评论回复
板凳
adminic| | 2007-6-26 19:50 | 只看该作者

最好两种都会,呵呵...

使用特权

评论回复
地板
lgq147| | 2007-6-27 19:00 | 只看该作者

新手园地[培训基地]

可以上网上下载电子书

使用特权

评论回复
5
pufan| | 2007-6-28 11:22 | 只看该作者

同意3楼说发

使用特权

评论回复
6
liangbingo|  楼主 | 2007-6-30 15:29 | 只看该作者

三楼说的是实在,对入门者来说确实不容易啊!

使用特权

评论回复
7
NE5532| | 2007-6-30 22:48 | 只看该作者

最好啤酒白酒都会喝。

汇编是白酒,精华,但是难于对付。
C语言是啤酒,痛快,EASY,但是没品味。

最好啥酒都会喝,否则总有人来收拾你。

其实对于初学者来说,硬件相关的东西写汇编写C还不都一个样,无非就少设一个堆栈而已。

学汇编吧,为了自己前途着想。

使用特权

评论回复
8
likee| | 2007-7-1 01:46 | 只看该作者

难怪我们考试只能用汇编...变态的老师...

使用特权

评论回复
9
HQGBOY| | 2007-7-3 11:10 | 只看该作者

呵呵.

使用特权

评论回复
10
liangbingo|  楼主 | 2007-7-9 12:44 | 只看该作者

七楼说得可真有意思,我看那也应是个人品味吧,毕竟有所

使用特权

评论回复
11
dick.ding| | 2007-7-11 00:11 | 只看该作者

小弟我很是郁闷呢....

我目前只会汇编,而且可以自信的说比较熟练了...
C语言才开始起步,以前都没接触过C语言....

使用特权

评论回复
12
182006| | 2007-7-11 19:58 | 只看该作者

跟dick.ding 同步的……嘿嘿……打个伴……

跟dick.ding 同步的……嘿嘿……打个伴……

使用特权

评论回复
13
tjsheep| | 2007-7-12 07:21 | 只看该作者

不同意7楼,呵呵

汇编有专一性,一种cpu对应一种汇编,而且汇编语言本身比较简单,一条汇编对应一条机器代码,所以没有学习的必要,了解就可以,外加一本assembly manual就可以了。用到某种芯片,就去用某种汇编。c语言是通用语言,每种cpu的c编译器都大同小异,而且c语言存在一个编译优化的问题,每种cpu的编译方式不同,所以需要使用者对c的相关知识要更加了解,因此学习c是有必要的。举个简单例子,初学者可能不会注意,i++ 和 i=i+1 有什么区别,但是在很多cpu中,i++是编译成INC指令,而i=i+1是编译成ADD指令的,效率不一样的。还有,在有些cpu中 const 量是编译成TABLE表放在程序空间的,而有些是定义在数据空间加上c的init程序,而有些是默认外部数据空间本身就是非易失性的。这就需要用户对每种cpu的编译方式和硬件模式有足够了解,而汇编就简单了,一个MOV AL,#xxx 能有多少研究学习的地方,每个汇编指令都是固定的,除了记住没有别的要求。在一般情况下,汇编除了写一些功能模块效率高外,没有办法组织起一个复杂的系统,对于变量空间的利用也仅仅处于全局变量的能力,而中高级语言的堆栈在某种意义上来说是一个脱离低级语言的标志所在,也是一个伟大的设计。一万个全局变量基本是没有优化的可能的,但是一万个堆栈中的临时变量却不需要优化就可以达到最高的空间利用率。至于对底层的支持,c也基本能做的很好,可以操作寄存器,可以直接操作地址,可以操作端口,这就可以了,汇编无非也就这点特殊的能力了。最后来说,两者是不可取代的,但就学习而言,c远比汇编重要,基本上使用c的人都是从使用汇编开始的,但是使用汇编的人也许到现在也没有认识c的好处。呵呵,所以要我说,汇编也就能算是酒酿,而c就是从酒酿中酿出来的美酒……

使用特权

评论回复
14
liangbingo|  楼主 | 2007-7-12 15:49 | 只看该作者

果真经典!

小弟我近来也看过了一些C语言相关资料,认为楼上说得确实是对得,
美酒与酒酿得区别果真是大咯,支持!!!!!!!!!!
希望道同者学习学习。

使用特权

评论回复
15
NE5532| | 2007-7-14 11:24 | 只看该作者

跟13楼讨论一下

汇编确实是各种单片机各异,但是因为汇编处理的问题相对简单,都是高速的低层驱动,不会是上层应用,需要用的指令一般也就6、7条

例如

51用mov

AVR用st、ld

但是只要学会了一种汇编,其他的汇编基本不用学习,只要按照自己熟悉的语句去找,例如“移位”、“加法”、“数据搬移”,总能找到对应的指令。

C语言隐藏了硬件细节,编译器甚至一直给你帮忙写好main函数,但是作为一个合格的硬件设计师,不了解硬件细节是不能做出合格产品的。用51写C语言的可能永远不知道堆栈应该如何设置。

初学者最需要是理解单片机工作的原理,以及如何在这个架构上构建一个可靠的程序,直接写C语言可能造成“好逸恶劳”的习惯,限制之后的发展空间。

使用特权

评论回复
16
谈的元| | 2007-7-14 16:59 | 只看该作者

比较赞同楼上的

使用特权

评论回复
17
liangbingo|  楼主 | 2007-12-11 16:07 | 只看该作者

听了各位大侠的发表与探讨小弟我收获可佳,谢了!

使用特权

评论回复
18
林水海| | 2008-12-13 11:44 | 只看该作者

后悔死学C了....

因为我们做的产品都是些比较简单的,比喻说玩具,只能用便宜的OTP单片机,而且脚位都是8-14脚的,而便宜的单片机又不支持C,支持C的单片机脚位也是20脚以上的,而且贵得要命,我们一个玩具成品还卖不到6元呢?他单片机倒要6元了,或者是有C编译系统,但编译时会无故出错,这种错又不是错,你怎么改?烦!早知道开始就学汇编好了.....有人说STC的便宜?请问有谁知道2元以下的单片机吗?OTP的也可以,重要的是要可以用C的,目前知道EMC和其它代替他的都不能支持...

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

60

帖子

0

粉丝