如何从C代码生成MASM格式汇编

问题描述 投票:1回答:1

我正在编写C程序,我想编译为汇编程序,进行修改,然后使用MSVS随附的MASM汇编程序将其编译为可执行文件。

我知道MSVS本身允许从C程序进行汇编输出,但是我发现这些输出似乎以某种方式添加或省略了代码,因此,如果不进行重大修改,MASM就无法对其进行汇编。

是否有一种方法可以从我可以用MASM进行汇编的C代码中生成MASM语法格式的汇编,而几乎不需要进行任何修改?

c visual-studio assembly masm
1个回答
-1
投票

这样想:当您使用MASM时,您使用的是完全不同的语言,巧合的是,在汇编代码中有一些重叠。

您可以要求c编译器向您显示生成的程序集,但是该功能并非旨在用于跨程序集代码的交叉植入:这只是出于礼貌,以避免您麻烦来生成反汇编程序并手动提取位您需要。

c编译器旨在将您的c代码以及您甚至可能不知道的许多功能转换为满足您要求的某些机器代码。这意味着所生成的代码可能包含更多的东西(例如,Helpers),并且可以链接到其他库(例如,msvc运行时),因为这是msvc编译器设计的工作方式。

另一方面,如果您使用MASM,则观众是需要控制所有内容的人。因此,您将不再受益于c语言和运行时的功能和限制。

话虽如此,如果需要的话,请尝试着重使用在线汇编,因为您仍然可以使用c或c ++之类的高级语言,同时保留了在需要时弄乱汇编代码的能力。

© www.soinside.com 2019 - 2024. All rights reserved.