首页
论坛
课程
招聘
[求助]好了我来问一下arm汇编的事情
2021-5-16 01:01 1837

[求助]好了我来问一下arm汇编的事情

2021-5-16 01:01
1837


这里汇编导入了一个c函数
extern "C" JNIEXPORT int32_t JNICALL mod_for_asm(int32_t num, int32_t mod)

 

然后掉这个函数的时候使用blx mod_for_asm就会异常,但是bl就可以调用...

 

使用
ldr r2,=mod_for_asm
blx r2
会编译错误,具体错误如下
warning: shared library text segment is not shareable
error: treating warnings as errors
百度查了一下,是因为安卓高版本禁止重定位

 

现在问题来了

 

这是什么问题??
阿巴 阿巴

 

顺便伸手安卓方面的arm汇编资料


[培训] 优秀毕业生寄语:恭喜id咸鱼炒白菜拿到远超3W月薪的offer,《安卓高级研修班》火热招生!!!

收藏
点赞1
打赏
分享
最新回复 (6)
雪    币: 10
活跃值: 活跃值 (644)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
雨之后 活跃值 2021-5-16 01:12
2
0
另外调用约定还是比较迷糊
调用者恢复堆栈,保存使用的寄存器,
被调用者保护fp寄存器??
雪    币: 10
活跃值: 活跃值 (644)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
雨之后 活跃值 2021-5-16 14:12
3
0
1
雪    币: 271
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
Anhanguera 活跃值 2021-5-16 21:32
4
0
blx是跳转到thumb指令,保存和恢复都是由被调用的函数的做的吧
雪    币: 10
活跃值: 活跃值 (644)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
雨之后 活跃值 2021-5-16 22:22
5
0
Anhanguera blx是跳转到thumb指令,保存和恢复都是由被调用的函数的做的吧
我看反汇编好像只有fp寄存器被调用者保存并恢复了,参数的栈是调用者恢复。。。
雪    币: 25
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
万里星河 活跃值 2021-5-17 10:23
6
0
为啥都能 bl mod_for_asm
为何不直接 blx mod_for_asm呢
偏要拿r2寄存器中转一下 会不会是r2中转的操作出了问题
雪    币: 10
活跃值: 活跃值 (644)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
雨之后 活跃值 2021-5-17 21:35
7
0
万里星河 为啥都能 bl mod_for_asm 为何不直接 blx mod_for_asm呢 偏要拿r2寄存器中转一下 会不会是r2中转的操作出了问题
blx mod_for_asm会报错 异常
游客
登录 | 注册 方可回帖
返回