首页
社区
课程
招聘
[求助]请教一段arm指命问题?
发表于: 2012-7-20 18:19 8713

[求助]请教一段arm指命问题?

2012-7-20 18:19
8713
var_2C          = -0x2C
CMP     R10, #0 //if (R10 < 0)
MOVLE   R0, #0 // R0 = 0
STRLE   R0, [SP,#0x50+var_2C]
BLE     loc_87E3C //goto loc_87E3C

STRLE   R0, [SP,#0x50+var_2C] 这句是什么意思?看像是保存值指命?不过找了很久也没有看相关内容?
还有 BLE     loc_87E3C
现在是根据R10还是R0跳转了?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 319
活跃值: (2459)
能力值: ( LV12,RANK:980 )
在线值:
发帖
回帖
粉丝
2
我的理解是根据R10来跳转的。R0也是根据R10来设置的。动态跟踪一下应该可以理解指令的意思。
2012-7-21 16:35
0
雪    币: 4902
活跃值: (130)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这段详细解释应该是这样的
var_2C          = -0x2C
CMP     R10, #0 //此处应该是比较 R0 和0,并将结果保存至 CPSR
MOVLE   R0, #0 // LE是条件指令(Less than or Equal),R10 若小于或等于立即数0,则执行MOV指令,将 0 传送到 R0
STRLE   R0, [SP,#0x50+var_2C]  //LE同上,若 R10 小于 0,则执行STR指令,将 0x50+var_2c 的值入栈,并将 R0 的值写入到新入栈的地址中
BLE     loc_87E3C //BLE = Branch if Less than or Equal,这个应该不用再说了,附条件的跳转指令

个人理解
不一定对哈……
2012-7-21 21:06
0
雪    币: 335
活跃值: (263)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
多谢阁下详细回答!
2012-7-23 09:24
0
雪    币: 86
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不错,学习了
2013-11-8 17:26
0
游客
登录 | 注册 方可回帖
返回
//