Tag: 程序集

在C / C ++中使用汇编语言

我记得在阅读某个地方真正优化和加快某些部分的代码,程序员用汇编语言编写该部分。 我的问题是 – 这个练习还在做吗? 以及如何做到这一点? 汇编语言不是写得太麻烦了吗? 当我们编译C代码(有或没有-O3标志)时,编译器会进行一些代码优化并链接所有库并将代码转换为二进制对象文件。 所以当我们运行程序时,它已经是最基本的forms,即二进制。 那么如何诱导“汇编语言”呢? 我想了解这个概念和任何帮助或链接非常感谢。 更新:按照dbemerlin的要求改写第3点 – 因为你可能能够编写比编译器生成的更有效的汇编代码,除非你是汇编专家,否则代码会慢慢运行,因为编译器通常比大多数人能更好地优化代码。

objdump如何发出intel语法

我怎样才能告诉objdump在英特尔语法中发出程序集而不是默认的AT&T语法?

什么时候应该将我的部件部署到GAC中?

我想实际知道我应该在GAC中部署什么样的程序集。 案例1 :如果在我的解决scheme中多个项目使用log4net.dll,那么它应该部署在GAC? 情况2 :如果我在一台机器上部署了多个应用程序,每个使用log4net.dll是否足以将log4net.dll部署到GAC的原因?

assembly – CMP后的JG / JNLE / JL / JNGE

我不明白CMP之后的JG/JNLE/JL/JNGE指令。 例如,如果我有: CMP al,dl jg label1 当al=101; dl =200 al=101; dl =200 。 关于我们问什么jg ? 这是在al>dl ? 或al-dl>0 ? 下一个代码也是一样的: test al,dl jg label1 我不明白我们比较什么,以及我们问什么“ jg ”。 换句话说,我不明白我们什么时候会跳到标签1,什么时候我们不会。 谢谢。

从命令行汇编版本?

有没有一个微软工具从命令行获取DLL文件的程序集版本? (我知道我可以编写我自己的工具。)

我应该有一个单独的接口程序集?

我们目前在一个项目中有相当多的类,每个类都实现了一个接口,主要是为了DI原因。 现在,我个人的感觉是,这些接口应该放在同一个程序集中的一个单独的名称空间中(所以我们有一个MyCompany.CoolApp.DataAccess程序集,其中有一个提供MyCompany.CoolApp.DataAccess.Interfaces的Interfaces名称空间)。 但是,有人build议这些接口实际上应该在自己的组装中。 而我的问题是 – 他们是对的? 我可以看到有一些好处(例如,其他项目只需要使用接口程序集),但是在这一天结束时,所有这些程序集都需要加载。 在我看来,可能会有一个稍微复杂的部署问题,因为Visual Studio不会自动将实现程序集拉到目标的bin文件夹中。 有最佳的实践指导方针吗? 编辑: 为了让我的观点更清楚一点:我们已经将UI,DataAccess,DataModel和其他东西分离到不同的程序集中。 我们现在也可以用一个不同的实现来replace我们的实现,而不用担心,因为我们使用Unity(IOC框架)将实现类映射到接口。 我应该指出,除了多态性的原因和为unit testing创​​build模拟外,我们从不写两个相同接口的实现。 所以除了unit testing之外,我们现在不会“换出”一个实现。 我看到在与实现相同的程序集中有接口的唯一缺点是整个程序集(包括未使用的实现)将被加载。 然而,我可以看到在不同的程序集中让他们意味着开发人员不会意外地“实现”新的实现类,而不是使用IOC包装器创build它。 我没有从答案中理解的一点是部署问题。 如果我只是依靠接口程序集,我会有一个像下面的结构: MyCompany.MyApplication.WebUI References: MyCompany.MyApplication.Controllers.Interfaces MyCompany.MyApplication.Bindings.Interfaces etc… 当我build立这个时,自动放入bin文件夹的程序集就是那​​些接口程序集。 然而,我在统一的types映射映射到他们的实际实现不同的接口。 包含我的实现的程序集如何在bin文件夹中结束?

在C ++编译器输出中使用“xor eax,ebp”

我只是在VS2010上编译了一些C ++代码片段,并分析了IDA Pro上的可执行文件。 我注意到的是,他们中的大多数在开始时具有类似于以下内容的东西(在调用__security_check_cookie之后不久) xor eax, ebp 和类似的东西 xor ecx, ebp 在底部。 为什么会这样呢? 编译器优化已closures。

ASP.Net不能创build/影子副本

开发ASP.Net应用程序时,我重复得到这个错误: Cannot create/shadow copy 'XXXXX' when that file already exists 其中XXXXX是一个随机的DLL。 通常,DLL是微软企业库中的一个DLL,但它有所不同。 这真的是随机的,这是非常令人沮丧的。 我会花几个小时没有得到错误,然后每10-20分钟就会得到一个错误。 我见过几个解决scheme。 比如这个问题 。 我试过使用清洁解决scheme选项,我也简单地重新启动我的本地IIS。 但是,它仍然以相同的随机但持续的频率出现。 我也看到很多人提到在configuration文件中使用这个选项: <hostingEnvironment shadowCopyBinAssemblies="false" /> 然而,其他人提到这是有问题的,绝对不能用于生产。 那么,我应该放弃并尝试shadowCopyBinAssemblies选项吗? (并且不要把这个改变复制到其他环境中。)我是唯一经常遇到这个问题的人吗? 注意:我正在使用Visual Studio 2008。

如何在Linux中反汇编二进制可执行文件以获取汇编代码?

我被告知使用反汇编。 gcc是否有内置的东西? 什么是最简单的方法来做到这一点?

我在哪里可以find全面的x86_64汇编指令列表?

我正在做一个涉及“解散二进制炸弹”的科幻类实验室,基本上是对一个程序进行逆向工程以获得6个“密码”。 我只是在一个易于阅读的地方寻找所有说明的清单。