【发布时间】:2015-02-19 21:37:44
【问题描述】:
我正在尝试在我的 C++ 源代码中使用以下 ASM 内联代码,为 Visual Studio 提供:
__asm {
mov ecx,target
}
其中 target 是一个 void* 指针。我不知道如何将其转换为与 GCC 兼容的代码。 我知道 GCC 使用如下合成器:
asm (".intel_syntax noprefix");
asm ("mov ecx,target");
但显然在这种情况下变量存在问题。那么,任何人都可以向我解释如何使用 GCC for Windows 使用带有内联 ASM 的指针?
感谢您的帮助。
【问题讨论】:
-
试试看,这里有一些有用的例子:ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html#s7
-
还有this link。 GCC内联汇编很难!但是对于您的简单案例,我相信您会在这三个链接中找到一个有用的示例。
-
3 个链接,没有人提到 asm (gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html) 的官方 gcc 文档?它比初学者可能想要的更长更详细,但它是 gcc 信息的官方来源,几乎所有你想知道的东西都在那里。
标签: c++ gcc inline-assembly intel-syntax