【发布时间】:2018-01-03 20:52:57
【问题描述】:
我在 fasm 中有这样的汇编代码:
struct TestStruct
test dd 0
ends
proc TestProc theArg:TestStruct
mov eax,[theArg.test]
ret 4
endp
start:
virtual at 0
lpTest TestStruct
end virtual
lea eax, [lpTest]
invoke TestProc, eax
invoke ExitProcess, 0
.end start
所以,我试图传递一个结构 TestStruct 作为对 TestProc 的引用,所以它与 C 中的 this 相同:
int _stdcall TestProc(TestStruct * arg)
{
return arg->test;
}
...
TestStruct arg;
TestProc(&arg);
我在这里在堆栈中声明了它
virtual at 0
lpTest TestStruct
end virtual
但是当我编译时,我得到如下编译错误:
Error Extra character on line: label ..arg?WJ TestStruct这一行出现这个错误:
proc TestProc theArg:TestStruct
如何正确通过引用传递这个结构?
【问题讨论】:
标签: assembly macros x86 structure fasm