分享

汇编语言 (Assembly)

 离魂异客 2011-12-17


   不可不否认的一点汇编语言写的程序要比C的快20%左右。很多编译和优化器说可以将C的程序的代码优化到汇编程序的90%左右,真假与否还有待测试。但真实的一点我们应该看到,汇编比C快很多,这也是它经久不衰的原因。下面我们来说一点具体的。
首先你要明白汇编语言实际上是计算机处理器实际运行的指令(机器码)的命令形式表示法。这意味着你将与处理器的底层打交道,比如寄存器和堆栈。如果你要找的是类英语且有相关的自我说明的语言,这不是你想要的。
确切的说,任何能在其他语言里做到的事情,汇编都能做,只是不那么简单 — 这是当然,就像说你既可以开车到某个地方,也可以走路去,只是难易之分。话虽不错,但是新技术让东西变得更易于使用。
总的来说,单独用汇编的情况是不多的,因为现在有一种理念叫快速开发,在时间和效率上找一个平衡点来得到最大的效益。所以一般汇编会嵌入C语言中来使用。一般是用在调用最频繁的一代码段上。
特别注意:语言的名字叫“汇编”。把汇编语言翻译成真实的机器码的工具叫“汇编程序”。把这门语言叫做“汇编程序”这种用词不当相当普遍,因此,请从这门语言的正确称呼作为起点出发。
优点:
最小、最快的语言。汇编高手能编写出比任何其他语言能实现的快得多的程序。你将是利用处理器最新功能的第一人,因为你能直接使用它们。
缺点:
难学、语法晦涩、坚持效率,造成大量额外代码 — 不适于心脏虚弱者。
但现在很多汇编版本都提供了宏指令,用起来和高级语言的语法有点像了,也不是那么难了,可以用结构化的面向过程开发思想来开发。
移植性:
接近零。因为这门语言是为一种单独的处理器设计的,根本没移植性可言。如果使用了某个特殊处理器的扩展功能,你的代码甚至无法移植到其他同类型的处理器上(比如,AMD的3DNow指令是无法移植到其它奔腾系列的处理器上的)。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多