此ia32 ASM代码来自apache项目,用于JNI调用。如何分析此代码中的参数传递到哪里?
我的目标是在其中添加一些代码,条件是参数编号为0。
对于JNI,至少有env参数,此代码是正确的。但是我想将代码用于其他事情,在这种情况下,没有env参数。有人知道如何添加“如果(0个参数){不推送参数}其他{推送参数}”判断吗?
invokeNative:
push %ebp
movl %esp, %ebp
push %ecx
movl 8(%ebp), %eax
movl 12(%ebp), %ecx
leal -4(%eax,%ecx,4), %eax
subl %esp, %eax
1:
push 0(%esp,%eax)
loop 1b
movl -4(%ebp), %ecx
movl 16(%ebp), %eax
call *%eax
leave
ret