Где передать аргументы в функции invokeNative asm? - PullRequest
0 голосов
/ 05 ноября 2018

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