首页
社区
课程
招聘
[求助]ARM 汇编代码有地方不理解,请教各位大佬
发表于: 2020-5-13 01:21 2945

[求助]ARM 汇编代码有地方不理解,请教各位大佬

2020-5-13 01:21
2945

图片描述
请教下各位大佬
.text:000098DC 20 00 9F E5 LDR R0, =(ta_ptr - 0x98E8)
这一条的 pc+0x20 当作地址,然后取值,这个得的值,难道不是代码段的地址嘛,我有点不理解
.text:000098E0 00 00 9F E7 LDR R0, [PC,R0] ; ta
.text:000098E4 00 30 90 E5 LDR R3, [R0] ; "123456"
这两条就更不理解了
我不明白为什么这三条代码是怎么取到值的,请教各位大佬帮我解惑,感激不尽

 

源代码如下

 

#define LOG_TAG "armarm"

#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__);
#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, LOG_TAG, __VA_ARGS__);

const char* ta = "123456";

 

void tfun4(){
LOGV("ta data is %s",ta);
}

 

这个编译成是32位的so armeabi-v7a


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2020-5-13 01:22 被shaqim编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 2141
活跃值: (7226)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
2
https://bbs.pediy.com/thread-221821.htm  
我入门时写的..
2020-5-13 02:27
3
雪    币: 162
活跃值: (170)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
3
他是相对偏移,在很多代码里  反汇编你会发现 一个函数的代码和他使用的一部分数据(例如这个函数里用到的字符串和一些偏移值)是存放在一起的,一般会出现代码执行了一段,然后会有一个jmp jmp后面紧跟着的就是这些数据 而jmp则是调到这堆数据后面的代码继续执行   所以你会在你觉得是代码段的地方发现既有代码又有数据   当然你这个截图的情况函数比较短,在数据之前直接返回了也就没有我之前说的那个jmp的操作了
2020-5-13 08:40
2
雪    币: 7048
活跃值: (3527)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
4
这是PIC(位置无关代码)吧?
2020-5-13 08:59
1
雪    币: 122
活跃值: (148)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
多谢各位大佬,非常感激
2020-5-13 12:27
0
雪    币: 122
活跃值: (148)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
爱吃菠菜 https://bbs.pediy.com/thread-221821.htm 我入门时写的..
多谢各位大佬,非常感激
2020-5-13 12:27
0
游客
登录 | 注册 方可回帖
返回
//