| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1760 人关注过本帖
标题:用汇编来理解C会更好吧。
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
還是讓彙編版的高手給你講解吧。整體來說,彙集的指令基本上是與CPU指令一一對應的,每條指令都沒有多餘的動作,但其他高級語言多多少少都有多餘的指令,因為後者面對的情景不單一,需要考慮很多防禦問題,如果情景很明確,在確知刪掉什麼也能滿足需求的時候,就考慮使用彙編層次的程序。也就是說,如果你使用的語言越低級,面對的環境就越單一、越有針對性,其反面是缺乏通用性。其實道理很簡單,86系列的彙編就只適用於特定的機器,但考慮移植性的高級語言編譯出來的代碼必然會有檢測機器類型然後調用對應指令的動作,其總體代碼包裹一系列不同針對性的功能包備用,這些檢測動作有時被視為多餘、低效率,代碼覆蓋面廣也被視為臃腫,有潔癖的人無法容忍這些東西,就會追求高效。其實,只要你面對真實需要的環境,恐怕自以為高效的手段,會破綻百出。

授人以渔,不授人以鱼。
2012-01-31 14:54
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 29楼 有容就大
我對中國歷史知道的更多~

授人以渔,不授人以鱼。
2012-01-31 14:59
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
呵呵,原来这样啊

梅尚程荀
马谭杨奚







                                                       
2012-01-31 15:08
你们都要疼我哦
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:火星
等 级:贵宾
威 望:49
帖 子:1296
专家分:2746
注 册:2008-7-13
收藏
得分:0 
神州行 你看行

小妹,哥哥看你骨骼清奇,绝非凡人,将来必成大业,不如这样,你先把裤裤脱了,待哥哥为你开启灵窍,然后我们一起努力钻研如何
2012-01-31 15:51
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用hellovfp在2012-1-31 14:53:01的发言:

没有汇编,就没有操作系统。linux的内核就是汇编和C的混合编程产物。

现在的操作系统 只有引导代码必须是汇编的 其他的都可以用C来写

我就看过那个linux早期内核注释的书 里面的汇编没多少嘛 呵呵

顺便 C版讨论汇编和我没关系啊 有不懂的欢迎去汇编版问

至于上面说拿汇编当宝贝么 我觉得各人有各人的看法

我昨晚上的回复复活了这个帖子 嘿嘿


[ 本帖最后由 zklhp 于 2012-1-31 23:46 编辑 ]
2012-01-31 16:04
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 34楼 你们都要疼我哦
大家行才是真的行。

梅尚程荀
马谭杨奚







                                                       
2012-01-31 17:16
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 35楼 zklhp
不是每个版主都叫zklhp.

梅尚程荀
马谭杨奚







                                                       
2012-01-31 17:18
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:0 
以下是引用zklhp在2012-1-31 16:04:40的发言:


现在的操作系统 只有引导代码必须是汇编的 其他的都可以用C来写

我就看过那个linux早期内核注释的书 里面的汇编没多少嘛 呵呵

顺便 C版讨论汇编和我没关系啊 有不懂的欢迎去汇编版问

至于上面说拿汇编当宝贝么 我觉得各人有各人的看法

我昨晚上的回复复活了这个帖子 嘿嘿
CPU寄存器不被映射到内存的代码也必须用arch特定的汇编来写,像linux里的task_schedule,entry.s

技术问题,请不要以短消息方式提问
2012-02-04 18:45
快速回复:用汇编来理解C会更好吧。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012794 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved