我想问一下这里的arm指令中发生了什么。我有ASM的知识,但我很难理解ARM。我试图查找互联网上提供基础知识的信息,但我正在看的东西有点不同。所以这里是我想了解的代码..你能解释一下这些指令是做什么的。我会标记那些我不明白的。它是来自IDA的代码。有人可以解释整个功能吗?我会很感激。感谢布尔指令
LDR R3, =(unk_E9BFB0 - 0x6B1B4C) //This once,i dont get it, is it subtracting?
LDR R8, [R5]
MOV R1, R6
ADD R3, PC, R3
LDR LR, [R4,#0xC] //This instruction
LDR R12, =(aDraw_debug - 0x6B1B68) //This once
MOV R2, R7
STR R8, [R3,#0x30]
MOV R0, R3
STR R4, [R3]
ADD R12, PC, R12 ; "draw_debug" //This once
STR R3, [R5]
STR R12, [R3,#0x2C]
ADD R12, LR, #1
STR R12, [R4,#0xC]
BL __aeabi_atexit
你尝试ARM的[公司网址](http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0041c/Babbfdih.html)? –
“有人可以解释整个功能吗?”总之,没有。 a)它显然不是一个“完整的函数”,因为最终没有返回,b)它是一系列指令,读取一些内存地址,计算一些偏移量,并写入一些内存地址 - 我非常怀疑任何人都可以解释_why_没有远远超过在这里可能重现的上下文。 – Notlikethat