我正在用汇编器编写简单的程序,该程序将由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]