我经常看到这样格式化的代码:
push arg
push arg
(...)
mov ecx, arg
call function
如果我需要在 Assembly 中调用该函数,那很好。但是由于我知道如何始终如一地获取函数的基础,为了组织和简单起见,我想在 DLL 中使用 typedef 来调用函数。
问题是我不知道如何使用 ecx 进行调用来传递数据。除非我弄错了,func(arg,arg)
否则总是会组合成两次推送和一次调用。如果我不使用 ecx 函数会崩溃,因为它是一个指向对象的指针,它需要是那个。没有内联汇编,有什么办法可以做到这一点,我想避免吗?