个人感觉,内嵌汇编没多大用

jackyjkchen 2010-04-13 08:24:21
基本上吵嚷者汇编效率高出C许多的都是没用过汇编的(典型语录——要效率你用汇编啊)……原因很简单,一般水平的家伙写汇编就别说逻辑上跑赢C/C++的代码优化了,就在指令集这块——教材上的386级别的指令也完全比不上最新的intel指令集,现在有些牛逼的SSE指令抵得上一个小型的C函数了。

VS2008可以直接认得SSE4指令集.

类似的,VS2005支持到SSE3.

我觉得,要内嵌汇编,不用SSE3~SSE4就没有价值,而能跑赢C/C++编译器优化的专业汇编选手也太少了,因此我见到喜欢内嵌汇编的,总感觉在装B……


又见到一篇欠扁的文章,该“大牛”竟然在32位C语言程序里内嵌8086汇编以“加强效率”——mov ax,bx
...全文
1297 60 打赏 收藏 转发到动态 举报
写回复
用AI写文章
60 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangbch 2012-09-18
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
这老帖又被挖出来了。
easyme 2011-04-03
  • 打赏
  • 举报
回复
蹭分的!
wangliyongbb 2011-01-01
  • 打赏
  • 举报
回复
这就好象,不同的锁用不同的钥匙一样,在应用层,高级语言有着,反超的速度,但在系统层要开这把锁,必须用简短的机器指令才呢完成目的。内嵌汇编是c语言可以所以的的硬件平台上,调动硬件和使用硬件。强大的英语强大的微软。
Vicent20138888 2010-09-22
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 vuoin 的回复:]

如果开发桌面应用软件,那当然是用C++调用windows API更方便,如果是开发网页,当然是用.net平台的C#更方便,如果是开发动画,当然是用Adobe flash及其平台上的ActionScript更方便。但如果是开发操作系统,你别无选择,只能用汇编,因为操作系统是直接跟硬件打交道,要管理硬件的。要开发操作系统可不是那么简单的,你得翻阅所有硬件公司的技术文档,你得熟悉大量硬件细节才行。
……
[/Quote]
真专业,学习了。
支持中文哦 2010-04-18
  • 打赏
  • 举报
回复
楼主不知道汇编那些场合要用就说没多大用,也太井底之蛙了吧。

没用过欧元,偶也知道欧元是有用滴
emailtome 2010-04-18
  • 打赏
  • 举报
回复
内联汇编 ,就是方便移植做的 !
一般都会写2个版本 ,一个C版本 一个平台优化版本 通过宏定义切换!
MizunoKaede 2010-04-18
  • 打赏
  • 举报
回复
在Hook一些用寄存器传参数的函数或者用ecx来传递this指针的函数的时候,不用内嵌汇编如何实现?
wglacier 2010-04-18
  • 打赏
  • 举报
回复
有些时候汇编还是必须的,比如,你要获取当前的EIP的值,不用汇编,做的到吗?
FancyMouse 2010-04-15
  • 打赏
  • 举报
回复
发现inter。蹭两下~~~
zenny_chen 2010-04-15
  • 打赏
  • 举报
回复
呵呵,又见楼主愤青啊。
SSE等SIMD本来就是用于图像、音视频等信号处理领域的。
我要你在二叉搜索树里用SSE,不就傻眼了嘛,呵呵。

另外,在嵌入式领域中内嵌汇编更是常见,理由楼上几位已经说得很清楚了,呵呵。
madpc 2010-04-15
  • 打赏
  • 举报
回复
用处不大和没用是两回事,这么简单的问题...
不知名小ITer 2010-04-15
  • 打赏
  • 举报
回复
单纯的看看你们的讨论..
dream17953 2010-04-14
  • 打赏
  • 举报
回复
话说回来,口口声声把汇编挂在嘴上的人,也有可能是只是用这个来满足自己的虚荣心或者哗众取宠而已,你心里有数就好了,别觉得汇编不好。
dream17953 2010-04-14
  • 打赏
  • 举报
回复
你自己也承认,是有人能够用手工汇编跑赢编译器的C语言优化的,因为这是必然会有人做到的事情,不能说现在用汇编精通的人不多,你就说汇编怎么样了,我觉得你有偏见了。你没资格嘲笑崇尚汇编的人,哪怕他水平不怎么样。
lin_style 2010-04-14
  • 打赏
  • 举报
回复
本来以为LZ挺看明白技术的,现在怎么又掉进来了。

把语言分一个个层次,汇编,C,自定义库,JAVA。。。。
无论你处在哪个层次上,尤其是一些自定义库上,在一些场合你肯定会感觉,这个库怎么这么烂,设计得什么玩意儿,然后你就开始进行一些底部修改以更加符合使用。。

C和汇编的关系又何尝不是这样呢。。跳出来再发个帖指责就又成为众矢之的了。。
ForestDB 2010-04-14
  • 打赏
  • 举报
回复
确实实际工作中能用到的可能性很小很少。
zhangzhongke007 2010-04-14
  • 打赏
  • 举报
回复
围观看热闹。。。
vuoin 2010-04-14
  • 打赏
  • 举报
回复
汇编最大的特点就是操作的原子性,适合用来开发操作系统。而高级语言的好处是一般的功能被封装成由一些普通指令组成的指令块了,只要一句就调用出来了,方便快捷,适合用来开发应用软件。但封装的永远只能是普通指令组成的通用指令块提供的一般的功能,而特殊的原子操作指令是无法封装的,特殊的原子操作功能是无法提供的,这些指令必须单独写,这就是汇编的功能。
vuoin 2010-04-14
  • 打赏
  • 举报
回复
操作系统的有很多原子操作必须要靠硬件的单指令来实现,高级语言一句对应多指令,无法保持操作的原子性。高级语言编译器如果要用语句实现这些原子操作,那就必须一条语句对应一条硬件指令,一条语句对应一条硬件指令那不就是汇编吗?
加载更多回复(40)

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧