免费注册 查看新帖 |

Chinaunix

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

从asm角度看C/C++  关闭 [复制链接]

论坛徽章:
0
31 [报告]
发表于 2008-12-28 19:16 |只看该作者
原帖由 zx_wing 于 2008-12-28 19:03 发表

不要怪我说的直,你对你讨论的东西实在知道的太少,基本上是刚摸到点门,回复里面错误地方很多,所以我才说Mik看到会来拍两板砖。
LZ我没有打击你积极性的意思哈,我是想说在讨论前应该先对要说东西搞清楚了 ...


论坛就是这样吗 , 不同看法提出来, 理越辩越明。
错了,纠正,也就进步了。不是说交换一份思想 , 大家将得2份 , 而不是交换苹果什么的。

退一步说 , 起码这比纯灌水好一点点吧:)

另外 , 你不要打击我 , 我胆小。

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
32 [报告]
发表于 2008-12-28 19:18 |只看该作者
原帖由 老手 于 2008-12-28 19:07 发表


在VHDL与Verilog之间 , 我选择后者 。 因为前者与pasical语法类似 , 后者更像C 。
几年前买了几片xc2s200 , 至今也没时间去搞   这方面以后多向你请教。

电子工程师一定是要会HDL的,我以前喜欢VHDL,但是现在一般使用verilog,而反倒vhdl越来越陌生了。
verilog很自由,不像vhdl那么结构清晰,不过现在甚至VLSI的设计很多都采用verilog,verilog的市场占有远超过了vhdl
呵呵,话题扯远了,这里是C版,不是mik兄和我的版

论坛徽章:
0
33 [报告]
发表于 2008-12-28 19:24 |只看该作者
偏几句没关系的, 不必那么刻板。

除了“;”号 , 语句 , 还有你说的自由 , 都跟C很像吧。 好了不讨论这个 , 再说我的水平也很烂。

论坛徽章:
0
34 [报告]
发表于 2008-12-28 22:33 |只看该作者
原帖由 老手 于 2008-12-27 20:23 发表
谢谢ls几位。

看看x86的 , 几乎一样。

var_28          = dword ptr -28h
var_24          = dword ptr -24h
var_14          = dword ptr -14h
var_C           = dword ptr -0Ch
var_8            ...



你这个代码应该是 VC6 产生的,是一个除法优化算法,通过乘法实现除法。

VC6 已经老了,现在至少用vs2005了吧!

现在的编译器已经不使用“通过乘法实现除法”这种方法来进行优化了。

现在机器的除法运算已经有很大进步了。

论坛徽章:
0
35 [报告]
发表于 2008-12-28 22:35 |只看该作者
原帖由 老手 于 2008-12-28 19:16 发表


论坛就是这样吗 , 不同看法提出来, 理越辩越明。
错了,纠正,也就进步了。不是说交换一份思想 , 大家将得2份 , 而不是交换苹果什么的。

退一步说 , 起码这比纯灌水好一点点吧:)

另外 , 你不 ...


zx_wing 说得实在 

论坛徽章:
0
36 [报告]
发表于 2008-12-28 22:45 |只看该作者
原帖由 mik 于 2008-12-28 22:33 发表



你这个代码应该是 VC6 产生的,是一个除法优化算法,通过乘法实现除法。

VC6 已经老了,现在至少用vs2005了吧!

现在的编译器已经不使用“通过乘法实现除法”这种方法来进行优化了。

现在机器的 ...


不是VC6 , VC6我还是了解一点点的。 它的出入栈规则可不是这样。

我也不用windows系统。这段程序是在linux下用g++编译出来的,PPC的也一样 , 所以它们两者之间有着惊人的相似。

除法用乘来做的速度还是有所提高的 , 可惜不是所有的数都能这样。

不要说除法了 , 加法 我有时都当加法算的:-)

论坛徽章:
0
37 [报告]
发表于 2008-12-28 22:51 |只看该作者
原帖由 老手 于 2008-12-28 22:45 发表


不是VC6 , VC6我还是了解一点点的。 它的出入栈规则可不是这样。

我也不用windows系统。这段程序是在linux下用g++编译出来的,PPC的也一样 , 所以它们两者之间有着惊人的相似。

除法用乘来做的速度 ...


这段代码你是 ida 反汇编再贴出来的?

提高不了多少,很微,甚至会慢

论坛徽章:
0
38 [报告]
发表于 2008-12-28 23:03 |只看该作者
linux(Unix) 下的自带的工具很多(可以用博大精深来形容) ,  用编译器也可以直接生成汇编。

我对编译器的优化效果印象深刻。 老实说,我手工写出来的都不见得比它好 , 特别是像PPC之类 , 编译器也为指令的分支预测作了大量工作。

那可不是人干的活 :-)  。

论坛徽章:
0
39 [报告]
发表于 2008-12-28 23:18 |只看该作者

回复 #38 老手 的帖子

我是说是不是用 ida 反汇编的,没说你用手写

没听说过 ida 吗?

你贴的这段代码,怎么和 ida 反汇编后的那么像?

别说你是直接用g++生成汇编后贴出来,那是intel语法

论坛徽章:
0
40 [报告]
发表于 2008-12-28 23:22 |只看该作者
我这里面说的重点不在指令级别的。前面也有朋友说了 , 单条指令是看得懂的 , 但整体就不行了。

我这里边重点是放在大的框架上 , 是在跟C/C++的高层概念的联系上 , 而且是linux下的GNU C/C++ .

比如 那个gettimeofday , 我好像没发现windows上也有 (Ming不算)。

这也只是单个函数 , 还有 类   virtual   多重继承   模板  异常 等等都是很有趣的 。

就单是了解指针概念 ,也非常好! 比如程序为什么会崩溃啦等等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP