2013-02-18 92 views
1

我有用C#编写的这个非常复杂的算法,现在我需要的是在汇编程序中编写相同的东西,我知道基础知识,但是我真的很感谢有关应用程序结构以及如何处理的一些线索矩阵在asm中。 (这将是.DLL我假设)将C#代码转换为程序集

这里的算法: http://pastebin.com/iGKcK1rF

在此先感谢

+0

您粘贴的代码是不是C – 2013-02-18 10:49:52

+1

已经重新标记为C# – SynerCoder 2013-02-18 10:50:12

+0

我会重写它的C,让编译器优化像疯了似的(循环展开,等等),然后配置文件,并尝试优化慢位ASM。 – leppie 2013-02-18 11:54:17

回答

1

的最快方法是使用你的C编译器从C代码生成汇编代码。然后你可以研究这个生成的代码并改进它。如果您使用的是gcc编译器,则启动时使用-S选项可生成汇编代码。如果您使用的是名为cl的MS Visual Studio编译器,请将/Fa选项传递给它。

+0

问题是它不能被编译,它只是一个类,依赖于另一个类 - 我需要的是用其他一些处理数据的机制来替换这个类Matrix。我需要它来做同样的工作 – Ziker 2013-02-18 12:19:35

0

为了增加米哈伊尔的回答以上:

  1. 简介您优化之前!查找“gprof”。这里有一个有用的链接: http://www.cs.utah.edu/dept/old/texinfo/as/gprof.html#SEC2

  2. 使用分析的结果,将您的代码分区为计算密集型内部循环和“外部代码”。

  3. 将内部循环转换为asm(使用Mikhail的建议或其他方法),然后从您的程序中调用它们。

+0

我想尝试使用内联汇编器来编写关键代码 - 它比编写单独的ASM模块要容易一些 – 2013-02-18 10:59:50

+0

和我的错误,它是C#代码,但我想它应该没有区别嗡嗡声;> – Ziker 2013-02-18 11:07:55

+0

问题是它不能被编译(它只是一个类,依赖于另一个类 - 我需要的是用其他一些处理数据的机制来替换这个类Matrix我不需要它将被严格转换为ASM,我需要它来完成同样的工作。 – Ziker 2013-02-18 12:12:59