Этот код 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