leonnewton/cache_test

老哥,你这个源码可以放上嘛

Closed this issue · 5 comments

老哥,你这个源码可以放上嘛

同求

当时忘记放源码了,后来换电脑就没了,应该反编译APK可以完全获得源码。

主要是jni的代码,大哥有的话必🙏

__asm __volatile (
1 "stmfd sp!,{r4-r8,lr}\n"
2 "mov r6,#0\n" 用来统计循环次数,debug用的
3 "mov r7,#0\n" 为r7赋初值
4 "mov r8,pc\n" 4、7行用来获得覆盖$address“新指令”的地址
5 "mov r4,#0\n" 为r4赋初值
6 "add r7,#1\n" 用来覆盖$address的“新指令”
7 "ldr r5,[r8]\n"
8 "code:\n"
9 "add r4,#1\n" 这就是$address,是对r4加1
10 "mov r8,pc\n" 10,11,12行的作用就是把第6行的指令写到第9行
11 "sub r8,#12\n"
12 "str r5,[r8]\n"
13 "add r6,#1\n" r6用来计数
14 "cmp r4,#10\n" 控制循环次数
15 "bge out\n"
16 "cmp r7,#10\n" 控制循环次数
17 "bge out\n"
18 "b code\n" 10次内的循环调回去
19 "out:\n"
20 "mov r0,r4\n" 把r4的值作为返回值
21 "ldmfd sp!,{r4-r8,pc}\n"
);

好吧 谢谢了 我自己捣腾汇编吧 ^_^