免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: guoruimin
打印 上一主题 下一主题

[C] 使用C语言,要不要了解汇编? [复制链接]

论坛徽章:
0
61 [报告]
发表于 2010-07-07 09:55 |只看该作者
本帖最后由 guoruimin 于 2010-07-07 09:56 编辑

俺不是汇编偏执狂,但汇编绝对是基本功!
我从不一味的用所谓底层的东西。
能用C实现,就不用汇编;
能用动态语言(Python、lua)实现,就不用C。
把程序做稳定后,再分析性能瓶颈,慢慢优化。
架构的合理与系统的稳定性是第一位的。
工作中进展速度也很重要,所以要尽快搞出个稳定版本出来。
只要没有架构上的隐患就行。

有人说汇编没必要学,纯属扯淡!
不但要了解汇编,连应用环境硬件内存多少、网卡速度、处理器架构与指令集都要了解!
x64平台的应用慢慢的多了,参数的调用细节和x86上是不一样的,不看指令怎能明白;
写多核系统的应用代码的逻辑架构都要做相应考虑;
就连用个malloc就要考虑内存页面是多大!
定个结构体,就要考虑对齐访问速度的问题!x64和x86也是不一样的。
在函数里定义变量,先定哪个后定哪个,怎样的顺序节省栈空间,也是要考虑的!
简单的语句,怎么写才能充分利用处理器的流水线架构,也要考虑!
语言是用来驾驭硬件的,不深入了解硬件,仅了解一门C语言怎么行!

论坛徽章:
0
62 [报告]
发表于 2010-07-10 00:21 |只看该作者
个人认为要理解C语言一定要了解汇编!

论坛徽章:
0
63 [报告]
发表于 2010-07-10 17:59 |只看该作者
本帖最后由 三月廿七 于 2010-07-10 18:14 编辑

cu 真有趣啊,

论坛徽章:
59
2015年亚洲杯之约旦
日期:2015-01-27 21:27:392015年亚洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵节徽章
日期:2015-03-06 15:50:392015年亚洲杯之阿联酋
日期:2015-03-19 17:39:302015年亚洲杯之中国
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03双子座
日期:2014-12-10 21:39:16处女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
64 [报告]
发表于 2010-07-10 18:04 |只看该作者
回复 11# hellioncu


    C语言和ASM没有必然关连。个人意见,了解ASM,但决不使用,除非你在写OS(此时也要严格控制ASM的数量和结构)

论坛徽章:
0
65 [报告]
发表于 2010-07-10 18:10 |只看该作者
回复 65# folklore


我不能理解的是, 为什么人与人的观点都不一样呢?

论坛徽章:
59
2015年亚洲杯之约旦
日期:2015-01-27 21:27:392015年亚洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵节徽章
日期:2015-03-06 15:50:392015年亚洲杯之阿联酋
日期:2015-03-19 17:39:302015年亚洲杯之中国
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03双子座
日期:2014-12-10 21:39:16处女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
66 [报告]
发表于 2010-07-10 18:18 |只看该作者
回复 66# 三月廿七


    哈哈,不一样才是正常的,都一样才不正常呢~~

PS:我还找不到普通的Application,甚至Driver,存在某个功能能够了用C不能实现,但用ASM能够实现的,除了OS(因为此时会用到CPU的很多特权指令,这些指令无法成为C语言的一部分,而Driver最多就是写Register而已,包括USB设备,只不是它将Register换成Endpoint,名字不同而已,App就更不用说了)。

论坛徽章:
0
67 [报告]
发表于 2010-07-10 18:23 |只看该作者
回复 67# folklore

我很喜欢你的观点, 刚好符合我这懒人的心理。/

论坛徽章:
0
68 [报告]
发表于 2011-04-27 02:44 |只看该作者
好久没写过汇编了,只读不写还是手生了。

论坛徽章:
0
69 [报告]
发表于 2011-04-29 09:26 |只看该作者
guoruimin 发表于 2010-06-14 07:49


其實讀過深入理解計算機系統(CSAPP)和編程卓越之道這兩部書之后就會發現C語言不過是對匯編的一個形式化,結構化的封裝而已... 連函數形參壓入堆棧的左右次序都可以干預的編程語言,根本不能算高級語言

论坛徽章:
0
70 [报告]
发表于 2011-04-29 09:27 |只看该作者
回复  hellioncu


    C语言和ASM没有必然关连。个人意见,了解ASM,但决不使用,除非你在写OS(此时也 ...
folklore 发表于 2010-07-10 18:04



    某些關鍵的地方還是要ASM一把的,譬如讀寫MIPS處理器的協處理器,C語言是辦不到的,準確地說是編譯器沒有提供這方面的庫函數,需要你自行擴充。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP