新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版用于讨论编程和软件设计的技巧
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机技术与应用『 编程心得 』 → 汇编语言真的重要吗? 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 7286 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 汇编语言真的重要吗? 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     martian_person 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:22
      积分:129
      门派:XML.ORG.CN
      注册:2007/8/27

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给martian_person发送一个短消息 把martian_person加入好友 查看martian_person的个人资料 搜索martian_person在『 编程心得 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看martian_person的博客楼主
    发贴心情 汇编语言真的重要吗?

    为什么学好计算机就必须学好汇编?
    按此在新窗口浏览图片
    这个问题太抽象。转载请注明出处为汇编网<http://www.******.net> 。

            汇编是干什么的?为什么要学好汇编?不学不行吗?要学好计算机非得学好汇编吗?乍看到这些问题,真是一头雾水。学好汇编会有什么好处?学好汇编老板就给你涨工资?还是学好汇编上天就会赐给你个大美女?还是政府就会给你解决住房问题?真是搞不懂。不过倒可以肯定头脑没大问题的人不会选择上面三个答案。那到底是为什么呢?是啊,停留在问题的表面似乎永远找不到答案。我们试图找一下答案,我们从这里入手,学习过汇编的人会了解计算机的底层工作方式,他会了解到cpu、内存、硬盘等硬件设备是如果协调地工作在一起,数据从哪里转移到哪里,在哪里被运算,又在哪里被存储起来等等等等。总之,计算机在你的面前不会再是一个黑洞。做这样一个比喻:一个貌美的姑娘总能让小伙子产生美好的幻想,而在医生眼里他永远是由639块肌肉和206块骨头组成的躯体。同样计算机在常人眼里可能是个神奇的东西,但在专业人眼里他就是一堆晶体管。原来我们的目的是让计算机在我们眼里变成一堆晶体管,这才是我们真正要的东西。得出结论:我们的真正目的是让计算机在我们眼里变成一堆晶体管,而不是要学好汇编。

            学好计算机就必须达到这个目的吗?
            明确了我们的真正目的,轻松了一些。然而学好计算机就必须达到这个目的吗?这个问题先不回答,看下面的例子:一个医生倘若不懂人体脉络、血液流向、器官构成,只是模仿过专业医生做过内科手术,哪怕模仿的多熟练,恐怕没有哪个患者敢让他做。很显然,这样的人也不配叫医生。倘若你是一个亿万富翁,某银行行长到你家跑存款,他只知道一些表面的银行利率和金融常识,不懂潜藏在背后的货币和金融原理,对投机风险不知晓,将巨额财产存储在这样的银行多少让人心里感觉不安。这样的例子很多,但道理只有一个,学好计算机也不例外。要想成为计算机方面的专家,但不了解计算机是怎么工作的,显然不合逻辑。得出结论:让计算机在我们眼里变成一堆晶体管是学好计算机的必要条件。 转载请注明出处为汇编网。

            目的确定,选择方法。
            条条大路通罗马,只要你确定去罗马。怎样达到“让计算机在我们眼里变成一堆晶体管”这一目的?我试图找到一条最近的路,其实可能每个人都在找这条路。曾经想过,倘若科技够发达,直接把一位计算机专家头脑里面关于计算机方面的所有知识直接拷贝到我的脑子,这样计算机就不在神秘。倘若真的存在仙境,梦中得到仙人指点,一夜我就可以成为计算机专家,这样计算机就不在神秘。不要觉得可笑,上面的两种方法也是方法,只不过目前还没有出现过类似的现象。那么我们来看现实中一个可行的方法,通过汇编语言的学习是可以达到这个目的的。汇编语言直接面向计算机底层,我们可以通过编写指令代码的方式控制一个单位数据从一个地方移动到另一个指定地方,可以指定让两个数据进行加减乘除运算,还可以通过指令直接控制终端设备。这就相当于我们用显微镜观察人体细胞,细胞内部组织展露无疑,细胞从此也就不再神秘。从而可以看出通过汇编语言的学习和应用对于理解计算机的内部工作方式是多么的直接。得出结论:学习汇编语言是达到“让计算机在我们眼里变成一堆晶体管”这一目的的一种有效方式。

            从上面的图以及我们刚才的分析可以看出,学习汇编语言与学好计算机之间是没有直接关系的。而到此为止,这些似乎抽象复杂的关系也就被我们理顺了,再遇到多么古怪的问题我们就会很清楚这个问题处于什么阶段了。转载请注明出处为汇编网 。

            分析一个问题。
            学生甲:“我没有学习过汇编语言,汇编语言太低级,我只学习高级语言,现在也学好计算机了。”
            这种观点我并不反对。我们来分析一下,学生甲既然自称已经学好计算机了,那么必然对计算机的内部工作方式相当清楚,即达到了我们上面所述的“让计算机在我们眼里变成一堆晶体管”这一目的。那么他是通过什么方式达到这一目的的呢?答案是“学习高级语言”。做这样一个类比:通过学习汇编语言达到这一目的就好比医生通过显微镜观察人体细胞。通过学习高级语言达到这一目的就好比医生通过观察细胞的繁殖、生长、血液细胞的流动、皮肤细胞的衰老等一系列细胞外在展现出来的情况来达到认知细胞内部组织结构的目的,特别是他对细胞内部组织结构的认知与我们用显微镜观察到的完全一致。显然,这种人是属于天才的那种人。他具备对事情有很强的总结归纳、从表面现象分析本质原理的能力,而且一般对该领域有极大的兴趣,促使他要搞清楚到底是怎么一回事。然而,通过以上两种方式的对比,我们也不难看出,前者是正序的学习方式,后者为倒序的学习方式,后者一般会占用相当长的时间,因为过程中毕竟需要对表面现象进行深刻的分析、领悟,最终得出自己的结论,而前者直接通过显微镜观察就一目了然了。

            结束语:证明一个结论的对错并不重要,因为有太多的结论等我们去证明。重要的是要搞清楚我们面临的现状,从而采取最有效的方式,做出最有效的选择。转载请注明出处为汇编网<http://www.******.net>


       收藏   分享  
    顶(1)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/11/24 16:02:00
     
     martian_person 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:22
      积分:129
      门派:XML.ORG.CN
      注册:2007/8/27

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给martian_person发送一个短消息 把martian_person加入好友 查看martian_person的个人资料 搜索martian_person在『 编程心得 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看martian_person的博客2
    发贴心情 
    确实现在很多高手都说汇编语言不用学,但是倒底是不是呢?高手有几个没有看过汇编的,是不是觉得应用比较少就觉得没有用了呢?如果真的没有的话,汇编也应该和b语言什么的一样消失才对阿~但是现在大学还依然在讲,难道是大学的水平太低,不知道淘汰这些无用的东西..
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/12/11 18:03:00
     
     martian_person 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:22
      积分:129
      门派:XML.ORG.CN
      注册:2007/8/27

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给martian_person发送一个短消息 把martian_person加入好友 查看martian_person的个人资料 搜索martian_person在『 编程心得 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看martian_person的博客3
    发贴心情 
    摘段汇编语言的前言,以供大家参考,明确了学习的目的才能有的放矢。

    汇编语言是很多相关课程(如:数据结构、操作系统、微机原理等)的重要基础。其实仅从课程关系的角度讨论汇编语言的重要性未免片面,概括的说,如果我们想从事计算机科学方面的工作的话,汇编语言的基础是必不可缺的。原因简单,我们的工作平台、研究对象都是机器,汇编语言是人和计算机沟通的最直接的方式,它描述了机器最终所要执行的指令序列。我们想深入研究英国文化,不会英语行吗?

    我们学习汇编的两个根本的目的:充分获得底层编程的体验,深刻理解机器运行程序的机制。这两个目的达到了,其它目的也就自然而然地达到了,举例来说,你在学习操作系统等课程时,对许多问题就会有很通彻的理解。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/1/10 12:05:00
     
     guoleihit 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:14
      积分:104
      门派:XML.ORG.CN
      注册:2008/1/4

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给guoleihit发送一个短消息 把guoleihit加入好友 查看guoleihit的个人资料 搜索guoleihit在『 编程心得 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看guoleihit的博客4
    发贴心情 
    http://www.alimama.com/membersvc/rd.do?w=p_10724505&p=&f=http://www.alimama.com/membersvc/promotion/tjyj.htm
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/1/11 10:46:00
     
     songweijia 帅哥哟,离线,有人找我吗?双鱼座1982-3-1
      
      
      等级:大一(高数修炼中)
      文章:7
      积分:99
      门派:IEEE.ORG.CN
      注册:2008/1/14

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给songweijia发送一个短消息 把songweijia加入好友 查看songweijia的个人资料 搜索songweijia在『 编程心得 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看songweijia的博客5
    发贴心情 
    学好汇编真的很重要吗?这个题目本身是不完整的。背后还有一个问题就是:你要做什么?计算机行业这个领域显然非常庞杂包罗若干门分支学科。我还没有见到过一个“高手”能同时深入地了解计算机所有方面的知识。

    你要做嵌入式系统,那么好,请你把汇编搞清楚--事实上,汇编语言仅仅是一堆指令助记符,理解汇编的关键在于理解执行汇编的环境:什么是寄存器?什么是加法器?什么是浮点运算器?什么是数据/指令总线?什么是MMU?什么是Cache?什么是流水线多发射结构?

    如果你要做Web,在距离操作系统海拔几千米的高度去摆弄Spring应用框架,SOA,AJAX,GWT,Hibernate,数据库等等,那么我觉得汇编语言对于你来说确实没有什么用处。

    一言以蔽之:术业有专攻。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/1/14 14:26:00
     
     GoogleAdSense双鱼座1982-3-1
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 编程心得 』 的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/19 11:12:29

    本主题贴数5,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    6,328.125ms