如何从MASM调用JNI Java函数

时间:2018-11-04 20:18:36

标签: java-native-interface masm

我正在用汇编器编写简单的程序,该程序将由JNI从Java调用。 我想从JNI执行函数,根据documentation,它在187索引之下。当我执行此行时:

call qword ptr[rax + 187*8]

我正在接收访问冲突错误。我可能做错了什么? (由于x64体系结构,我将索引乘以8)。 我正在执行的所有代码:

push rdx                  ; save Java array pointer for later use
push rdi                  ; save JNIEnv pointer for later use
push rcx                  ; save array length for later use
mov rsi, rdx              ; set array parameter for GetIntArrayElements
mov rax, [rdi]            ; get location of JNI function table
xor edx, edx              ; set isCopy parameter to false for GetIntArrayElements
call qword ptr[rax + 187*8]

0 个答案:

没有答案