尽管阅读了以下参考资料,但我仍有一些我不明白的 ARMv7 指令:ARM 信息中心
在以下情况下:
a7a4d8: b530 push {r4, r5, lr}
a7a4da: 466c mov r4, sp
a7a4dc: 4605 mov r5, r0
a7a4de: 682a ldr r2, [r5, #0]
a7a4e0: ebad 0d02 sub.w sp, sp, r2
a7a4e4: f104 0014 add.w r0, r4, #20 ; 0x14
a7a4e8: 4669 mov r1, sp
a7a4ea: b082 sub sp, #8
a7a4ec: 466a mov r2, sp
a7a4ee: 462b mov r3, r5
a7a4f0: f746 f1b8 bl 5c0864 <RoutineName>
a7a4f4: 9800 ldr r0, [sp, #0]
a7a4f6: 9901 ldr r1, [sp, #4]
a7a4f8: 46a5 mov sp, r4
a7a4fa: bd30 pop {r4, r5, pc}
以下有什么作用?有人可以用伪代码来解释吗?
a7a4de: 682a ldr r2, [r5, #0]
a7a4e0: ebad 0d02 sub.w sp, sp, r2
a7a4e4: f104 0014 add.w r0, r4, #20 ; 0x14
a7a4f4: 9800 ldr r0, [sp, #0]
a7a4f6: 9901 ldr r1, [sp, #4]