我有另一种错误尝试使用-fasm块参数(这使英特尔风格汇编语法)与苹果GCC 4.2.1编译这在工作MSVC联汇编代码:块组件的操作数没有识别,标签 'LASM $ TYPE' 使用,但不限定:GCC内联汇编错误:块组件操作不承认
typedef struct _MyStruct
{
int data;
//...
}MyStruct;
void testAsm()
{
MyStruct *pMyStruct = new MyStruct(); // Please not that I create an instance of MyStruct here only for the sake of simplicity
_asm
{
mov edi, pMyStruct
add edi, TYPE MyStruct // error: block assembly operand not recognized. label 'LASM$TYPE' used but not defined
//...
};
delete pMyStruct;
}
我该如何解决这个问题?
你究竟想要做什么?我从来没有在Visual C++中看到这样的语法... – Goz 2011-06-03 09:58:45
其实,这是我第一次看到它,我无法找到文档,它会覆盖它... – Ryan 2011-06-03 10:11:34
我也遇到过这个问题 - 在另一个内联汇编代码中,使用了offset关键字:“mov eax,offset fptr”,其中fptr是一个函数“void fptr(void * pData)”...这次GCC报告错误“Block assembly operand not承认“:( – Ryan 2011-06-03 10:16:11