论坛风格切换切换到宽版
  • 3392阅读
  • 13回复

新手51单片机 C语言的困惑 我到底该优先学C还是汇编? [复制链接]

上一主题 下一主题
离线szcharle
 
发帖
13335
只看楼主 倒序阅读 0楼 发表于: 2007-12-28
关于各个杂志媒体 对于单片机 c和汇编的优缺点都已经是老生常谈了!说的都烦了

毕竟是新手啊
应该说目前为止 还是熟汇编 不熟c的 没有用c编过什么 命令函数也是萌芽状态 呵呵
也想用c 前几天一个程序 有用c的 有用汇编的 看程序都是一个作用 结果c的就是延迟大 不可用! 感觉就是对时间稍微要求高点的 别用c
但是看很多人的程序还是用c的 而且自己心里面也总想好好学一下keilc之类 (总是有这样的念头跑出来!)

感觉为了配合单片机 c语言也有很多特殊的命令 参数等等 这和所谓的c语言高级语言 可移植性好 我看都是瞎扯淡了 除非你两种单片机都熟悉 。。。
而效率没有asm高又是肯定的
大家觉得c语言的上手比汇编还快嘛?
有点郁闷了!
离线小比尔/5
发帖
2582
只看该作者 1楼 发表于: 2007-12-28
c和汇编可以混编的,也就是一起用
c比较抽象,但可以避免很多重复的劳动,而且程序模块如果做得比较独立,可以很好地移植到其它系统里,开发速度也快,延时有时是可以克服的,比如在定时器中预减一个值。
汇编确实是对时间要求比较高的情况下用,类似通讯什么的。
有一本书,叫《51单片机c语言应用程序设计实例精讲,非常好,建议看看。73!:)
离线小比尔/5
发帖
2582
只看该作者 2楼 发表于: 2007-12-28
比如说:
定义了 unsigned char read0804() 这个无符号字节型函数

以后在程序里,如果需要ad,只要
变量名=read0804();
就可以了,不需要考虑push、pop啊,或者考虑用哪个寄存器来传数值
这比汇编方便

但如果是初学,还是要学汇编,这样才能了解机器里面的结构,也便于在c里面优化程序
离线永远的FM
发帖
12122
只看该作者 3楼 发表于: 2007-12-28
我怕个人觉得,汇编比较容易看懂。。。。。
我现在一直在搞汇编
离线代洪波
发帖
4809
只看该作者 4楼 发表于: 2007-12-28
先学习汇编对于以后优化c的代码应该有关系
离线ding
发帖
3488
只看该作者 5楼 发表于: 2007-12-28
我学了一点汇编,先了解一下51。。。
c还没有开始呢。
离线小比尔/5
发帖
2582
只看该作者 6楼 发表于: 2007-12-28
在keil里可以看到c编译后的反汇编代码,如果不爽,就可以用自己写的汇编代替掉
离线BA5RW
发帖
48263
只看该作者 7楼 发表于: 2007-12-29
不知道楼主为何学单片机,有没有目标?
以我个人的经验,感觉还是先从汇编学起,比较容易入门和上手。我玩单片机应该说也有一定年头了,但搞的都是对接口的控制,怪不得单片机在国外不叫计算机而是叫微控器(MCU)?正是这种微控器我感觉很好玩,也很有挑战性,象打游戏,遇到问题要过关一样……哈哈!玩着玩着突然遇到要用数学手段解决问题的了,这时候才知道那些计算机前辈的伟大和艰苦,他们的劳动令我肃然起敬!用汇编处理运算简直是对大脑的磨难,但这其间能真正了解运算的过程,培养逻辑思维,我开始后悔以前没学好数学,而到了狗急跳墙的时候,就不得不学习C语言了,C语言有更丰富的前人成果帮你解决问题,我也就这两周才知道C语言的好用,但是我不后悔玩了那几年的汇编!我学C语言还是我那上了大学的学生回来看到我那么痛苦的在用汇编,于是强烈建议我要去了解C语言,哈哈,现在我很感谢他们!N年前我就想赶时髦学C语言,但是翻开每一本书,都是教你用C打出HELLO,WORLD!实在无聊!所以一直都是看第一章就没有接下去了……所以你还是先学汇编吧,要勤奋,然后再学C……我的建议也许很不成熟,却是我深切的感受!希望对你有帮助!
离线xjl
发帖
1244
只看该作者 8楼 发表于: 2007-12-29
'
不知道楼主为何学单片机,有没有目标?
以我个人的经验,感觉还是先从汇编学起,比较容易入门和上手。我玩单片机应该说也有一定年头了,但搞的都是对接口的控制,怪不得单片机在国外不叫计算机而是叫微控器(MCU)?正是这种微控器我感觉很好玩,也很有挑战性,象打游戏,遇到问题要过关一样……哈哈!玩着玩着突然遇到要用数学手段解决问题的了,这时候才知道那些计算机前辈的伟大和艰苦,他们的劳动令我肃然起敬!用汇编处理运算简直是对大脑的磨难,但这其间能真正了解运算的过程,培养逻辑思维,我开始后悔以前没学好数学,而到了狗急跳墙的时候,就不得不学习C语言了,C语言有更丰富的前人成果帮你解决问题,我也就这两周才知道C语言的好用,但是我不后悔玩了那几年的汇编!我学C语言还是我那上了大学的学生回来看到我那么痛苦的在用汇编,于是强烈建议我要去了解C语言,哈哈,现在我很感谢他们!N年前我就想赶时髦学C语言,但是翻开每一本书,都是教你用C打出HELLO,WORLD!实在无聊!所以一直都是看第一章就没有接下去了……所以你还是先学汇编吧,要勤奋,然后再学C……我的建议也许很不成熟,却是我深切的感受!希望对你有帮助!
'
离线bh7ni
发帖
2743
只看该作者 9楼 发表于: 2007-12-29
既然你都明白了各自的优点,这里就不重复了
我做工程师写了4年的汇编,后来改行后到现在的8年间,偶尔还在用汇编写点小东西
喜欢汇编的感觉是妙不可言

做个未必不恰当的比喻,汇编,就像你不带t做那事一样的真实
离线永远的FM
发帖
12122
只看该作者 10楼 发表于: 2007-12-29
'
做个未必不恰当的比喻,汇编,就像你不带t做那事一样的真实
'

非常真实!让你直接接触mcu的每个部分!
离线standong
发帖
189
只看该作者 11楼 发表于: 2007-12-29
我是新手,在做这个的时候也有同样的困惑,但是不象楼上的都有汇编基础,现在感觉还是c好上手,方便
离线小比尔/5
发帖
2582
只看该作者 12楼 发表于: 2007-12-29
入门的时候一定要学好汇编,这样像中断、寄存器、时序这些东西才会比较明白。
但是如果你要做arm这样大家伙的话,汇编就不够用了
离线Apple
发帖
759
只看该作者 13楼 发表于: 2007-12-29
说c不好用的应该是汇编没有学好,c一样可以写出效率高的程序来.
先学明白汇编,然后等你了解了相应编译器的工作特点,写出来的c程序一样一样的好用.
在c里嵌入汇编语句也是很多的.
生产力我觉得还是c,绝对比汇编写的快,移植复用之类的就更不用说了.